在excel表格数组中查找文本
以下是一个大表的摘录(2017年按35个案例分类) 我想要一个公式,它将查找案例参考,例如P0093,并返回找到的第一个ID(a列) 例如,给定'P0094',公式将得到'1' 我希望答案与数组公式有关,这对我来说有点盲点 提前谢谢在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
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问题,以便了解它们的作用,以便您可以学习如何使用它们,并在看到它们时理解这些类型的公式。谢谢!我肯定会花一些时间来更好地了解这些。