公式适用于一些数据(不是全部)

问题描述 投票:0回答:1

my file here

在附件中,公式适用于多个第一个客户ID,但在客户ID列表末尾的某个点处失败。例如,当您输入客户ID“8010001”时,在单元格B2中的工作表2上,所有与此客户相关的请求都从工作表1中获取。然后,如果您再将包含请求ID的单元格(在本例中为8234276)激活并按“列表策略”按钮所有与此请求ID相关的策略都是从表单1中获取的。但是此过程失败,例如对于客户ID,例如8010112,8010198 ...即使对于客户ID 8010093也不能完全正常工作。你可以尝试一下。

excel excel-formula
1个回答
1
投票

在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构造中一次选择一个结果。

您可以使用公式评估来查看小数据集上的演示,以便更好地理解。

© www.soinside.com 2019 - 2024. All rights reserved.