如果这是一个重复的问题,请见谅。我有几个包含大量源数据的电子表格,我通常使用 INDEX+MATCH 来找出相应值的源数据,如此处的图表所示,这只是一个例子。
图形:
示例表如下: https://www.dropbox.com/s/yixftcr83tkoid2/example_sheet.xlsx?dl=0
通常我只需要查看特定月份中某些选定用户的数据,这可以通过 INDEX+MATCH(或 vlookup)来完成,但现在我想在特定月份中为这些选定用户的数据添加总和。在实际工作表中,我有很多选定的用户,也有很多不同的月份需要比较,所以我想避免一遍又一遍地执行 J10 SUM。有什么办法可以做到这一点?(基本上是单个任务,找到 I7-I9 中列出的用户的索引值,然后求和...)
PS 我的索引/匹配的实际列表超过 5,000 行,因此我使用 X:X 进行匹配。
答案1
如果您在某些单元格中写入需要求和的用户和月份,例如:
I6 May
I7 User1
I8 User3
I9 User7
I10 Sum
在 J10 中你可以写入以下内容:
=SUMIFS(INDIRECT(I6),A:A,I7)+SUMIFS(INDIRECT(I6),A:A,I8)+SUMIFS(INDIRECT(I6),A:A,I9)
但首先每个月仅定义一次名称:
- 公式
- 定义名称
- 在姓名框中写入 Jan
- 在 Refers 中写入 =Sheet!$B:$B
对每个月重复相同的操作并更改列引用:
- 二月 =Sheet!$C:$C
- 三月 =Sheet!$D:$D
- 四月 =Sheet!$E:$E
- 五月 =Sheet!$F:$F
- Jun =Sheet!$G:$G
现在,每当您将 I6 更改为其他月份时,它都会自动重新计算新月份。每当您更改
I7-I9 中的用户时,公式都会自动重新计算。
间接将 I6 中的值评估为具有相同范围名称的相应列
答案2
将您需要的月份名称放在单元格上,就像源表格中显示的那样。示例:
May
onI3
(更改I3
为更合适的单元格)将第三个参数更改
INDEX
为此MATCH($I$3, $B$3:$G$3, 0)
I3
基本上,它从表头 ( )中查找指定月份的名称B3:G3
并返回列号。它应该看起来像这样:
=INDEX($B$4:$G$12, MATCH(I7, $A$4:$A$12, 0), MATCH($I$3, $B$3:$G$3, 0))
然后您就可以继续查看SUM
结果。