基于多个条件从另一个工作表中提取值

问题描述 投票:0回答:2

表1,工作表a

+-----------+------------+-----------+------------------------+
| recipient | activity   | funding a | funding b from table 2 |
+-----------+------------+-----------+------------------------+
| group 1   | basketball | 200       |                        |
+-----------+------------+-----------+------------------------+
| group 1   | soccer     | 80        |                        |
+-----------+------------+-----------+------------------------+
| group 2   | soccer     | 18        |                        |
+-----------+------------+-----------+------------------------+
| group 3   | tennis     | 35        |                        |
+-----------+------------+-----------+------------------------+

表2工作表b

+-----------+------------+-----------+
| recipient | activity   | funding b |
+-----------+------------+-----------+
| group 1   | basketball | 100       |
+-----------+------------+-----------+
| group 1   | soccer     | 50        |
+-----------+------------+-----------+
| group 2   | soccer     | 25        |
+-----------+------------+-----------+
| group 3   | tennis     | 30        |
+-----------+------------+-----------+

我的目标是将表2工作表b中“资金b”列中的值插入表1工作表a中。请记住,这是一个简化的表,并且值在我的原始工作表中是无序的。

我尝试在表1的'表2的资金b中输入以下内容,并出现错误:

=INDEX(table2[funding b],MATCH(1,([@[recipient]]=table2[Recipient])&([@[funding a]]=table2[fundingb]),0))

我不确定如何继续进行操作,因此使用公式或强大的查询功能将不胜感激任何帮助或提示。

谢谢

excel excel-formula powerquery
2个回答
0
投票

如果我理解正确,您需要通过搜索收件人和活动来在第二张表中找到合适的资金。如果是这样,如果收件人和活动的组合是唯一的,则可以使用SUMPRODUCT功能:

=SUMPRODUCT(([@recipient]=Table2[recipient])*([@activity]=Table2[activity])*Table2[funding b])

如果不是唯一的,则使用INDEX / MATCH作为数组公式来返回找到的第一个值:

=INDEX(Table2[funding b],MATCH(1,([@recipient]=Table2[recipient])*([@activity]=Table2[activity]),0))

通过按ctrl +shift+ enter确认编辑后的数组公式>

enter image description here


0
投票

替代方法(远没有@basic的答案有效。)在表2中使用列助手。我们使用:

© www.soinside.com 2019 - 2024. All rights reserved.