【问题标题】:Return value of third column based on two column matches in Google Sheets根据 Google 表格中的两列匹配返回第三列的值
【发布时间】:2021-02-07 18:55:04
【问题描述】:

我正在尝试对一个长表进行排序,以便我们可以更轻松地分析数据。我有什么样的数据?

  • A 列:产品名称
  • B 列:日期(开始)
  • C 列:日期(结束)
  • D 列:价格

我需要做的是概述所有产品及其在特定日期的价格,以便我可以轻松制作图表以显示价格随时间的变化。我可以通过数据透视表做到这一点,这很有效。但我也需要它作为公式。

现在我正在使用:=iferror(index($D$2:$D; match($G3; $A$2:$A; 0); match(H$2; $B$2:$B; 0))),但问题是它只返回一个日期的值而不是其他日期的值(我猜是因为它正在寻找一个值而不是多个值)

是否可以结合 match( 和 index( 函数?

我该如何解决这个问题?我希望你们能帮助我。请在此处找到测试电子表格的链接:https://docs.google.com/spreadsheets/d/1llvpWCF0VRQMPwDGtQZ0qBiuCIsQBqeJtr7KCq7PBvg/edit?usp=sharing

提前谢谢你!

【问题讨论】:

    标签: google-sheets indexing match


    【解决方案1】:

    这是因为INDEX 函数的第三个参数必须指向第一个参数的列号。在您的情况下,只有一列 - $D$2:$D 并且如果第三个参数返回除一之外的任何内容,则结果将是错误并且公式返回空字符串。

    改为使用:

    =iferror(index($D$2:$D; match(1;($G3=$A$2:$A)*(H$2=$B$2:$B); 0)))
    

    【讨论】:

    • 非常感谢。我还有一个问题,希望你知道答案。是否也可以在日期范围内查找匹配项?例如,如果日期在 30-9-2011 和 1-10-2011 之间,产品 A 的价格为 1600 欧元,那么他也会为列 K 采用该价格(2011 年 1 月 10 日)。所以“最后已知价格”。那可能吗?谢谢!
    • @SamiChouchane 是的,这是可能的。将(H$2=$B$2:$B) 更改为(H$2>=$B$2:$B)*(H$2<=$C$2:$C)
    • 谢谢,我尝试在 (H$2=$B$2:$B) 内完成所有操作,但没有成功。这行得通!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多