![Excel 根据两个表的相关字段进行 SUM 或 COUNT](https://linux22.com/image/1365787/Excel%20%E6%A0%B9%E6%8D%AE%E4%B8%A4%E4%B8%AA%E8%A1%A8%E7%9A%84%E7%9B%B8%E5%85%B3%E5%AD%97%E6%AE%B5%E8%BF%9B%E8%A1%8C%20SUM%20%E6%88%96%20COUNT.png)
我在 Excel 中有两个表格
有50行的小桌子
tblGroups[#Headers]= Employee ID; Name; Group
......第二张表有 3000 多行......
tblData[#Headers]= EventID; Date; Employee ID; Value
现在请注意Value=1
,它们始终具有唯一的 EventID 编号。我正在尝试创建一个报告,显示特定值的计数或总和Group
。
再次,Group
在我的小表中找到了,Value
在大表中也找到了,但EmployeeID
在两个表中都找到了。有没有办法我可以编写一个查找来返回Value
大表中的 SUM 或 COUNT,其中包含来自某个组的员工 ID?然后对整个组进行 SUM 或 COUNT。
我可以使用以下方法获取组中的第一个 EmployeeID=SUMIFS(tblData[Value],tblData[EmployeeID],INDEX(tblGroups[EmployeeID],MATCH(F4,tblGroups[Group],0)))
其中F4
= 我想要搜索的组,但是我如何让它继续遍历该组的 ID 列表并不断添加?
现在我知道我可以使用 vlookup 向我的大表中添加一个辅助列,以将组添加到大表的行中,但我想问是否还有其他方法可以在数据表中不使用辅助列的情况下执行此操作,主要是因为我想给我的老板留下深刻印象并找到新的方法来做到这一点。
谢谢,
答案1
您可以使用 G4 中复制下来的这个“数组公式”
=SUM(SUMIFS(tblData[Value],tblData[EmployeeID],IF(tblGroups[Group]=F4,tblGroups[EmployeeID])))
已确认CTRL++SHIFTENTER
IF 函数返回该组所有 ID 的“数组”,然后 SUMIFS 也返回一个数组,因此您需要使用 SUM 将其括起来以将它们全部相加以获得最终结果