根据 'looked up' 单元格的原始位置查找相邻单元格值,同时处理重复值

Find adjacent cell values based on 'looked up' cells' original position whilst dealing with duplicate values

我目前遇到了一个 excel 问题,我似乎找不到答案。

采用以下示例数据集:

A          B          C          D          E          F          G     
Date       Color                                       Lookup     Adjacent value
1-1-2017   Green                                       3-5-2018
3-5-2018   Yellow                                      4-7-2018 
4-7-2018   Green                                       9-9-2018
1-2-2016   Purple                                      3-5-2018
6-9-2014   Red
9-9-2018   Green
3-5-2018   Blue

A 列和 B 列中的值是硬编码的。

已使用以下公式检索 F 列中的值,'filters' 主要数据基于 2018 年 1 月 1 日至 2020 年 12 月 31 日之间的日期(在我的真实数据集中,A 列和 B 列将与查找值和所需的相邻值不同 sheet):

=IFERROR(INDEX($A:$A;AGGREGATE(15;6;ROW($A:$A)/(($A:$A>=DATE(2018;1;1))*($A:$A<=DATE(2021;1;1)));ROW($A1)));"")

我现在需要找到一种方法,根据 F 列中的查找值从 B 列中检索相邻的单元格值(例如颜色),并将它们放在 G 列中。数据集应如下所示:

A          B          C          D          E          F          G     
Date       Color                                       Lookup     Adjacent value
1-1-2017   Green                                       3-5-2018   Yellow
3-5-2018   Yellow                                      4-7-2018   Green
4-7-2018   Green                                       9-9-2018   Green
1-2-2016   Purple                                      3-5-2018   Blue
6-9-2014   Red
9-9-2018   Green
3-5-2018   Blue

序列保持完整很重要;尽管 A 列包含 3-5-2018 的副本,但由于颜色不同,它们并不相同。

我的主要问题:如何将正确的颜色附加到正确的查找日期值?

非常感谢任何帮助!

亲切的问候,

VHes

首先您需要将索引函数数组从$A:$A更改为$B:$B。试试下面的公式。

=IFERROR(INDEX($B:$B,AGGREGATE(15,6,(ROW($A:$A)-ROW($A))/($A:$A=F2),COUNTIF($F:$F2,F2))),"")

这就是函数VLookup被发明出来的确切原因,让我们看一下下面的公式(在单元格G2中输入):

=VLookup(F2;$A:$B;2;FALSE)

此函数查找:

  • F2 :我们首先查找日期“3-05-2018”
  • $A$1:$B$8 :我们正在寻找 A1:B8 范围内的值,原因:
    • 我们要查找的值出现在该范围的第一列(A 列)
    • 我们想要 return 的值也出现在该范围内(B 列)
    • 我们必须保持该范围不变:当我们将该公式拖到下一行时,它可能不会变成“A2:B9”,因此我们必须使用“$A$1:$B$8”
  • 2 : 我们正在寻找第二列的值
  • FALSE:我们正在寻找完全匹配,而不是近似匹配。

如有疑问,请随时提问。