【问题标题】:Find adjacent cell values based on 'looked up' cells' original position whilst dealing with duplicate values在处理重复值时根据“查找”单元格的原始位置查找相邻的单元格值
【发布时间】:2020-12-03 10:06:37
【问题描述】:

我目前遇到了一个似乎无法找到答案的 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 列中的值,该公式根据 2018 年 1 月 1 日至 2020 年 12 月 31 日之间的日期“过滤”主要数据(在我的真实数据集中,A 列和 B 列将位于不同的表比查找值和所需的相邻值):

=IFERROR(INDEX($A$1:$A$8;AGGREGATE(15;6;ROW($A$1:$A$8)/(($A$1:$A$8>=DATE(2018;1;1))*($A$1:$A$8<=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

【问题讨论】:

  • 如果您有Excel365,那么您可以轻松完成。
  • 我正在使用 excel 2019 :)!

标签: excel excel-formula formula lookup excel-2019


【解决方案1】:

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

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

【讨论】:

  • 谢谢你,你是个英雄。它完美地工作。我将尝试弄清楚它现在是如何工作的:)
  • 我是这个网站的新手。不知道这是一个选项,但我找到了!
【解决方案2】:

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

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

此函数查找:

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

如果您有任何问题,请随时提问。

【讨论】:

  • VLookup() 将因重复数据而失败。它不会显示最后的结果3-5-2018 Blue
  • 是的,我试过这个 Dominique,但正如 Harun 所说,这会因为重复而变得混乱。不过感谢您的意见,我很感激。
  • 好的,我没有理解那部分,但是在互联网上搜索时,我发现反转 VLookup(或向后使用)似乎可以与 Choose 函数结合使用,也许你可以使用这种方法?
  • @VHes:我为此创建了一个新问题 (stackoverflow.com/questions/65127138/…),显然,在 Excel 365 中,有一个新函数 XLookup,可以反转 VLookup 搜索。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-17
  • 2020-05-23
  • 1970-01-01
相关资源
最近更新 更多