在excel表格数组中查找文本

在excel表格数组中查找文本,excel,Excel,以下是一个大表的摘录(2017年按35个案例分类) 我想要一个公式,它将查找案例参考,例如P0093,并返回找到的第一个ID(a列) 例如,给定'P0094',公式将得到'1' 我希望答案与数组公式有关,这对我来说有点盲点 提前谢谢 ID Case 1 Case 2 Case 3 Case 4 Case 5 1 P0001 P0092 P0093 P0094 2 P0016 P0150 P0419 P0420 3 P0018 P018

以下是一个大表的摘录(2017年按35个案例分类)

我想要一个公式,它将查找案例参考,例如P0093,并返回找到的第一个ID(a列)

例如,给定'P0094',公式将得到'1'

我希望答案与数组公式有关,这对我来说有点盲点

提前谢谢

ID  Case 1  Case 2  Case 3  Case 4  Case 5
1   P0001   P0092   P0093   P0094   
2   P0016   P0150   P0419   P0420   
3   P0018   P0189   P0421   P0422   
4   P0004   P0095   P0096   P0097   
5   P0005   P0104   P0105       
6   P0021   P0068   P0069       
7   P0007   P0098   P0099   P0100   
8   P0008   P0101   P0102   P0103   
9   P0009   P0062   P0233   P0234
尝试以下方法:(添加换行符以提高可读性)

只需将上述公式中的
E10
的两个实例更改为实际数据表的大小即可。(假设2017年ID和35个案例,我可能会将
E10
更改为
AJ2018
,但我不确定。)

另外请注意,这是一个数组公式,因此键入此公式后必须按键盘上的Ctrl+Shift+Enter键,而不是只按Enter键。

尝试以下操作:(为便于阅读,添加了换行符)

只需将上述公式中的
E10
的两个实例更改为实际数据表的大小即可。(假设2017年ID和35个案例,我可能会将
E10
更改为
AJ2018
,但我不确定。)

另外请注意,这是一个数组公式,因此键入此公式后必须按键盘上的Ctrl+Shift+Enter,而不是只按Enter。

非CSE可选 单元格参考布局如图所示。在I13中使用以下公式:

=IFERROR(INDEX($A$1:$A$10,AGGREGATE(15,6,ROW($B$2:$E$10)/($B$2:$E$10=$I$12),1)),"not found")
聚合执行类似于数组的操作,但实际上不是数组

其概念是查找您要查找的值为真的行,而所有其他行都将成为错误。它首先使分母返回TRUE或False。因为TRUE或FALSE是通过数学运算发送的,所以Excel会将TRUE转换为1,将FALSE转换为0。由于所有值除以0都会出错,因此只保留分母为真的行。原因是聚合函数中的6告诉聚合忽略所有错误。15总的来说,告诉聚合从最小到最大对结果进行排序。最后,1)告诉聚合返回列表中的第一个值。一旦知道了这一点,索引就会接管。索引返回从聚合传递的A1:A10范围内的行条目。如果范围是A2:A10,那么我必须减去行(A2)-1,以获得列表中的起始条目号,而不是行号

需要注意的一件重要事情。即使这不是数组,AGGREGATE也会执行类似数组的计算。因此,应避免在聚合函数中引用完整列,以避免在空白单元格上浪费计算

非CSE替代方案 单元格参考布局如图所示。在I13中使用以下公式:

=IFERROR(INDEX($A$1:$A$10,AGGREGATE(15,6,ROW($B$2:$E$10)/($B$2:$E$10=$I$12),1)),"not found")
聚合执行类似于数组的操作,但实际上不是数组

其概念是查找您要查找的值为真的行,而所有其他行都将成为错误。它首先使分母返回TRUE或False。因为TRUE或FALSE是通过数学运算发送的,所以Excel会将TRUE转换为1,将FALSE转换为0。由于所有值除以0都会出错,因此只保留分母为真的行。原因是聚合函数中的6告诉聚合忽略所有错误。15总的来说,告诉聚合从最小到最大对结果进行排序。最后,1)告诉聚合返回列表中的第一个值。一旦知道了这一点,索引就会接管。索引返回从聚合传递的A1:A10范围内的行条目。如果范围是A2:A10,那么我必须减去行(A2)-1,以获得列表中的起始条目号,而不是行号

需要注意的一件重要事情。即使这不是数组,AGGREGATE也会执行类似数组的计算。因此,应避免在聚合函数中引用完整列,以避免在空白单元格上浪费计算


使用
IFERROR
检查是否存在匹配项,这是一个很好的呼叫。我还将把它添加到我的公式中。使用
IFERROR
检查不匹配的调用很好。我也会把它加到我的公式里。谢谢你想象的,可爱的东西。我不知道它在做什么,但它给出了预期的结果。
MMULT
INDEX
TRANSPOSE
MATCH
SUMPRODUCT
在我看来是一些最有用的Excel函数,当在数组公式中一起使用时,它们可以完成大部分事情。我建议您研究这些单独的函数,了解它们的输入/输出是什么,并查看其他一些Excel问题,以便了解它们的作用,以便您可以学习如何使用它们,并在看到它们时理解这些类型的公式。谢谢!我肯定会花一些时间来更好地了解这些。谢谢你想象的,可爱的东西。我不知道它在做什么,但它给出了预期的结果。
MMULT
INDEX
TRANSPOSE
MATCH
SUMPRODUCT
在我看来是一些最有用的Excel函数,当在数组公式中一起使用时,它们可以完成大部分事情。我建议您研究这些单独的函数,了解它们的输入/输出是什么,并查看其他一些Excel问题,以便了解它们的作用,以便您可以学习如何使用它们,并在看到它们时理解这些类型的公式。谢谢!我肯定会花一些时间来更好地了解这些。