连接两列时如何获取索引和匹配的第 n 个值

连接两列时如何获取索引和匹配的第 n 个值

我有这个数据框,并且正在单元格 E1 中进行过滤: =IFERROR(SORT($B$2:$B$6+$C$2:$C$6),"")

在此处输入图片描述

我正在尝试根据数组进行索引和匹配以获取 A 和 D 中的值。我几乎已经用公式做到了这一点=INDEX($A$2:$A$6,MATCH($E1,$B$2:$B$6+$C$2:$C$6,0))

Apples但是,当我到达日期时,它会给我两个值1/12/2023 8:00,而我希望同时看到ApplesBananas。如果我要连接两列,如何获取第 n 个值?

答案1

由于使用了辅助列,因此不是一个很好的解决方案。尚未经过广泛测试。请检查您的终端。

在此处输入图片描述

E1 有您的公式。

在 F1 中输入 1,然后在 F2 中输入以下公式并将其向下拖到所需的行。

=IF(E2=E1,F1+1,1)

这将按顺序对重复项进行编号。因此,我们有 1 和 2在此处输入图片描述

在 G1 中,公式为

=IF(F1=1,INDEX($A$2:$A$6,MATCH($E1,$B$2:$B$6+$C$2:$C$6,0)),INDEX(FILTER($A$2:$A$6,($B$2:$B$6+$C$2:$C$6)=E1),F1))

将其向下拖动到目标行。现在,对于第二个匹配的日期时间,它将返回下一个适用的值。

请你亲自测试。

排序、过滤等功能在 O365 和 2021 中可用。

编辑1

您现在可以直接在 G1 中使用以下公式,无需 IF 和 INDEX 版本

=INDEX(FILTER($A$2:$A$6,($B$2:$B$6+$C$2:$C$6)=E1),F1)

在此处输入图片描述

编辑2

无辅助列的解决方案

G1

=INDEX(FILTER($A$2:$A$6,($B$2:$B$6+$C$2:$C$6)=E1),COUNTIF($E$1:E1,E1))

在此处输入图片描述

相关内容