我需要使用索引和匹配从另一列条件匹配的列中提取数据

Posted

技术标签:

【中文标题】我需要使用索引和匹配从另一列条件匹配的列中提取数据【英文标题】:I need to extract data from one column where condition matches from another column using index and match 【发布时间】:2019-04-14 06:39:39 【问题描述】:

在这张表中,我在B1:C18 中有一个范围,我想在G column 中返回column C 值,其中所有值都与column B 匹配,条件值在E1 中。

但我只从 C 列获得最高值,但不是全部(即,Sep 2 有两个值 443472)但它只返回 443

任何人都可以查看G1 中的公式返回

=IF(ISERROR(INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)),"", INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)).

【问题讨论】:

请阅读***.com/help/how-to-ask并编辑您的问题 @RussellB 感谢 cmets,我已编辑,如果可以,请您现在看一下。 【参考方案1】:

在列中获取答案

好的,我检查了你的公式,它也是正确的。我已将其修改为 Google 表格中的 ArrayFormula。检查一下。

一级方程式

=ArrayFormula(IF(ISERROR(INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)),"", INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)))

你也可以试试这个公式 -

公式 2

=ArrayFormula(IFERROR(INDEX($C$1:$C$18, SMALL(IF(E$1=$B$1:$B$18, ROW($C$1:$C$18),""), ROW())),""))

只需将公式复制到相应列的单元格中即可。

在单个单元格中获取答案

将此数组公式用于您的 Google 表格 -

=ArrayFormula(TEXTJOIN(", ",TRUE,IF(B1:B18 = E1,C1:C18,"")))

它将聚合单个单元格中的所有值。

【讨论】:

我想要不同单元格中的结果 嗨,艾哈迈德,谢谢你,但如果我有更多匹配结果,我需要提取那么多公式列,我们可以在一个公式中获得所有匹配结果 我没听懂你 对于每个值我需要拖动公式然后只有它返回所有匹配的值 是的,因为您需要在新单元格中使用它,如果该单元格没有公式,则不会有任何值...所以,它需要在您的单元格中想要里面的值。【参考方案2】:

也许你可以试试

=iferror(split(textjoin(", ", 1, filter(C2:C, B2:B=E1)), ", ", 1))

看看这是否有效?

【讨论】:

我想在 excel 中工作,因为过滤功能不适用于 excel。所以请你用excel重写它。

以上是关于我需要使用索引和匹配从另一列条件匹配的列中提取数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 dplyr [重复] 有条件地将一列中的值替换为另一列中的值

在数据框中创建列,按因子级别从另一列中采样

如何在另一列中按条件分组的列中查找下一个日期?

从pandas DataFrame中另一列中的位置给定的字符串列中提取字符[重复]

用熊猫计算另一列中的正则表达式匹配项

TSQL - 如何在另一列中提取具有最小值和最大值的列