【问题标题】:Excel match multiple valuesExcel匹配多个值
【发布时间】:2018-10-04 13:04:37
【问题描述】:

如果满足以下条件,我正在尝试编写一个 Excel 公式以在 worksheet1 的 E 列中返回某个值:

-value in column A;row x in worksheet1 matches value in column A;row y in worksheet2
-value in column K;row x in worksheet1 matches value in column C;row y in worksheet2

如果找到匹配项,则返回值应为工作表 E 列中的值乘以另一个工作表中的某个值(本例中为工作表 3 中的单元格 B23)

以下两个工作表的图像 所以在这种情况下,包含公式的 worksheet1 的单元格 L122 应该返回 worksheet2 的值 E6(因为 05.11. 和 'st' 匹配)

到目前为止的公式:

=INDEX(worksheet2!$E$4:$E$285;match(worksheet1!A1&worksheet1!K1;worksheet2!$A$4:$A$285&worksheet2!$C$4:$C$285;0))*(worksheet3!$B$23/750)

但似乎我在匹配/索引公式上做错了,并不知道是什么导致公式失败:)

提前致谢!

【问题讨论】:

  • 如果在拖动公式时出现问题,我的猜测是worksheet2!C4:C285 是原因,因为您在其他地方有绝对引用但这里没有......为了更有帮助,一个小例子模拟具有您预期输出的数据将真正帮助我们为您提供帮助。
  • 'return a certain value in E of worksheet3' 不符合worksheet2!$E$4:$E$285。事实上,当示例公式与叙述相矛盾时,这一切都有些令人困惑,而且更加令人困惑。你能发布预期的结果吗?
  • 用一些图片和更多信息更新/纠正了我的任务。抱歉,在简化我的数据/问题时犯了一些错误:)

标签: excel excel-formula


【解决方案1】:

... worksheet1 的单元格 L122 包含公式,应返回 worksheet2 的值 E6(因为 05.11. 和 'st' 匹配)

使用 AGGREGATE 可以稍微简化多列匹配。把它放在 worksheet1!L122 中

=INDEX(worksheet2!$E$4:$E$285; aggregate(15; 7;
            row($4:$285)/((worksheet2!$A$4:$A$285=worksheet1!A122)*
                          (worksheet2!$C$4:$C$285=worksheet1!K122)); 1))

【讨论】:

  • 谢谢,但是如果我将它实现到我的 excel 文档中,这个公式似乎不起作用,我并没有真正进入聚合函数,所以为了简化它,我创建了一个额外的列在 worksheet2 中搜索值并仅使用 vert.lookup 函数 =vert.lookup(A1&K1; ....
  • 两者都有接缝;和,在函数中用作分隔符
  • 谢谢@W_O_L_F,别让我就这样离开了。
  • 好的,检查这些解决了我的问题。谢谢! ;) 将在 Aggregate 函数中做一些研究并在我的文件中实现它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 2018-10-09
相关资源
最近更新 更多