【问题标题】:Creating a lookup formula with 2 criteria -- matching IDs and a date in a specific range创建具有 2 个条件的查找公式 - 匹配 ID 和特定范围内的日期
【发布时间】:2019-01-26 21:01:13
【问题描述】:

谁能给我关于这个示例工作簿的任何指导?

https://docs.google.com/spreadsheets/d/1eRa43WPueJBeS7D-Y1GpcrqlWjiKCTm2yZbrfErdI6A/edit#gid=1074678731

我正在尝试做的是以下...

在 MAIN 选项卡中,我想向“Cost”(D 列)添加一个公式,该公式用于填充 COST_ENTRY 选项卡中“Cost”中的数据——取决于通道名称是否匹配,以及是否匹配不是日期在一定范围内。

我想出了以下似乎可行的公式,但是需要手动将其向下拖动。

=INDEX(COST_ENTRY!D$2:D,MATCH(1,IF(A2>=COST_ENTRY!A2:A,IF(A2<=COST_ENTRY!B$2:B,IF(B2=COST_ENTRY!C$2:C,1))),0))

我相信我需要一个 ARRAYFORMULA,以便在工作簿刷新新数据时自动填充。而且我知道 INDEX 函数在数组中不起作用,所以我很难过。

我有一个建议,但它会涉及旋转成本输入表单,这并不可行——因为渠道的数量会超过 4 个。

有什么建议吗?

【问题讨论】:

  • 您想要哪个,Excel 或 Google 表格,它们是相似的,但这样的事情将以不同的方式完成,不会跨平台。
  • 必须“手动拖动”公式有什么问题?如果您愿意,可以复制并粘贴它。 ...只需将其复制到您的数据最终可能到达的位置,如果您担心出现错误,请将公式包含在 IFERR 中以防止出现错误,例如 =IFERR( Your Formula Here ,"")

标签: excel google-sheets spreadsheet vlookup array-formulas


【解决方案1】:

看起来您已经有了部分解决方案(在 H 列中) - 据我了解,您在手动旋转数据时看到了问题。根据您已有的代码,简单的解决方案是根据“COST_ENTRY”表自动透视数据。在您提供的示例工作簿上,我添加了另一张工作表 - “COST_ENTRY_PIVOT”,并在 F1 中更改了 H1 中的代码。

自动透视数据的代码是:

=QUERY({COST_ENTRY!A:D},"select Col1, sum(Col4) where Col1 is not null group by Col1 pivot Col3")

获取成本的最终公式是(基于您已有的代码):

=ARRAYFORMULA({"Matts Help + Pivot";IF(A2:A="",,VLOOKUP(A2:A,COST_ENTRY_PIVOT!A2:Z,MATCH(B2:B,COST_ENTRY_PIVOT!A1:1,0),TRUE))})

我在“COST_ENTRY”表中添加了新的“第 5 频道”和新日期,它可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2014-05-14
    • 2020-03-30
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多