在附件中,公式适用于多个第一个客户ID,但在客户ID列表末尾的某个点处失败。例如,当您输入客户ID“8010001”时,在单元格B2中的工作表2上,所有与此客户相关的请求都从工作表1中获取。然后,如果您再将包含请求ID的单元格(在本例中为8234276)激活并按“列表策略”按钮所有与此请求ID相关的策略都是从表单1中获取的。但是此过程失败,例如对于客户ID,例如8010112,8010198 ...即使对于客户ID 8010093也不能完全正常工作。你可以尝试一下。
在Sheet 2单元格B2(CTRL + SHIFT + ENTER)下面的公式:
=IFERROR(INDEX(Sheet1!$E$1:$E$122,SMALL(IF($C$1&$B$1=Sheet1!$J$1:$J$122&Sheet1!$A$1:$A$122,ROW(Sheet1!$E$1:$E$122),"a"),ROWS($A$1:A1))),"")
复制下来。
在Sheet 2单元格I2(CTRL + SHIFT + ENTER)中,编辑公式如下:
=IFERROR(INDEX(Sheet1!$D$1:$D$122,SMALL(IF($C$1&$A$1=Sheet1!$K$1:$K$122&Sheet1!$E$1:$E$122,ROW(Sheet1!$D$1:$D$122),"a"),ROWS($A$1:A1))),"")
复制下来。
你应该得到正确的结果。
Aaditi
SMALL的解释(IF部分
$C$1&$B$1
- 两个单元的简单级联,然后用于与来自表1的完整级联阵列进行比较,即Sheet1!$J$1:$J$122&Sheet1!$A$1:$A$122
,其产生布尔结果{TRUE,FALSE,TRUE...}
的阵列。
如果condition是TRUE
那么IF公式返回ROW(Sheet1!$D$1:$D$122)
,它评估行号。在FALSE
结果的情况下,它返回一个字符串"a"
,导致SMALL
公式的错误。终极结果阵列看起来像{1,"a",3....}
。
现在使用SMALL
我们逐个使用数字结果。在第一个单元格中,ROWS($A$1:A1)
评估为1,当我们将其复制下来时,它会生成后续数字,如2,3,4,5等。因此,我们从IF构造中一次选择一个结果。
您可以使用公式评估来查看小数据集上的演示,以便更好地理解。