如何在excel中的多列中索引和进行多个匹配?

贾斯汀怀特

我有一个看起来像这样的电子表格:

动物在哪里 数量
 长颈鹿野生 22
 狮子动物园 87
 老虎动物园 56
 长颈鹿动物园 15
 大象野生 94
 老虎野生 47
 狮子野生 45
 大象动物园 12
 老虎动物园 48

我需要返回所有数量的 Tiger,但只返回 Zoo 中的数量,并且我需要在一列中的不同单元格中列出这些数量。我应该能够轻松地将查询从 Tiger 更改为任何其他动物。

输出应如下所示:

获取生活在动物园的
 老虎
数量Tiger 
  56         
  48
获取生活在野外的狮子数量:
 Lions 
  94

谁能帮我解决这个问题?

转发埃德

被误解的问题

所以你会在某处有两个单元格来代表你的标准。让我们将其称为动物类型的单元格 D1 和位置的单元格 D2。

然后,您将使用以下公式的组合:INDEX 和 AGGREGATE。

让我们从聚合开始。使用它来构建与您要查找的条件相匹配的行号列表。

AGGREGATE(15,6,ROW(range of the first column of your table)/((range1=criteria1)*(range2=criteria2)*...*(rangeN=criteriaN)),row(A1))
  • 15 告诉 AGGREGATE 生成按升序排序的列表。
  • 6 告诉 AGGREGATE 从列表中排除任何错误。
  • ROW() 为我们提供了我们正在处理的行号除以条件将只允许所有条件都为真的结果是有效的列表条目。任何 False 结果都将导致除以零错误,从而从结果列表中排除 ROW()。
  • ROW(A1) 告诉 AGGREGATE 返回列表中的第 N 个数字。所以 ROW(A1) 将在公式被拖下时充当计数器。对于复制到的每一行,它将增加 1。

需要注意的几个重要事项。AGGREGATE 执行类似数组的计算。因此,避免在聚合函数中使用完整的列引用。数组计算中的大范围会减慢您的计算机速度。确保你用 $ 锁定你的参考范围,以防止它们在你复制时改变,除非它是你想要改变的东西,比如 row(A1)

所以现在您知道如何获取所需答案的行号列表。您现在想要将此信息嵌入到 INDEX 公式中:

INDEX(A:A,AGGREGATE(...))

对要提取的每一列信息重复此操作,更新要从中提取信息的 A:A 部分。

概念证明

POC

在图像中,我将整个公式包装在一个 IFERROR 函数中,以在未找到任何内容时显示“”。当您复制的行数多于结果时,这很方便。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Excel中的多个条件上进行索引匹配?

如何通过匹配值对Excel中的多列进行排序

Excel VBA - 如何在多个动态行数和多列中连接数据

如何在Excel中匹配多个列并获取值

如何在多列索引中对列进行排序以在Mysql中获得最佳性能

当索引和值在同一列中时如何进行多索引透视?

Excel 中具有索引/匹配的多个列/值

在Excel中对多个条件进行排序和索引

如何在多索引数据框中手动对列进行排序?

如何索引Excel中多列中重复的精确值

如何在VBA中编写索引并进行匹配

如何在 Excel 中从多个条件返回多个匹配项的列标题?

如何在弹性搜索中对多个索引的结果进行排序和限制

如何在Excel中的不同工作表中匹配多个列

使用Pandas,如何从一系列的多个索引中进行匹配,与DataFrame进行匹配并替换多列

R Studio中的“索引匹配”(多列)

如何在多列div中获取列索引

如何在Scala中对多个类型进行模式匹配?

如何在 Postgres 中创建多列 JSON 索引?

如何在 Pandas 中删除重复的多索引列

如何在多索引数据框中添加列?

如何在Pandas中重新排序多索引列?

如何排序和删除多索引数据框中的列

如何在datagridView中获取行索引和列索引

如何在SQLite中执行多列匹配?

如何在R /中执行复杂的多列匹配

Pandas 中的 Excel 索引和匹配

将 Vector 匹配到多列,返回其他列中的索引和对应值

如何在Python中的多个列中查找重复行的最大绝对值,并显示其行和列索引