有话咱好好说 发表于 2021-11-26 12:07:00

查找关键字符返回所在列的信息,并使用sumif引用实现汇总

需求:“汇总表”汇总”明细表“中的数据。
存在的问题:明细表中“所属部门”、“得分”需要不定期经常在A、B、C列中变动,无固定位置,也就是说“所属部门”、“得分”这两列有时是在A列,有时是在B列,有时是在c列,这样就无法使用固定的区间进行计算,所以想要通过查找关键字,得到其现在所在的列。。
思路:
1、在明细表查找“部门”、“得分”关键字,返回其所在的列:"明细表!B:B"、"明细表!C:C"。
2、sumif(range,criteria,sum_range)sumif函数中的range引用第1步中查找关键字“部门”所在列返回的结果,sum_range引用第1步中查找关键字”得分”所在列返回的结果部门和得分使用第一步的结果。
不知如何实现?或是有其它方法解决。



方明 发表于 2021-12-2 04:44:57

附件是否是你需要的?

永远飞翔的毛 发表于 2021-12-10 21:43:20

A、B、C列随机变化的,比如
有时是名称、所属部门、得分
有时是所属部门、得分、名称
有时是得分、名称、所属部门
所以才有第1步

小小初哥哥 发表于 2021-12-12 23:10:47

B3=SUMIF(INDIRECT("明细表!"&ADDRESS(1,MATCH("所属部门",明细表!$A$1:$C$1),1)&":"&ADDRESS(10000,MATCH("所属部门",明细表!$A$1:$C$1),1)),A3,明细表!$C$1:$C$10000)
C3=COUNTIF(INDIRECT("明细表!"&ADDRESS(1,MATCH("所属部门",明细表!$A$1:$C$1),1)&":"&ADDRESS(10000,MATCH("所属部门",明细表!$A$1:$C$1),1)),A3)

最暖的衣服是口袋塞满钱吖 发表于 2021-12-18 19:06:13

感谢秋风荡芦苇和wisdom988热心帮助,最后我做了一个可根据字符定位的,就是不知道能不能精简,公式如下:
B3=SUMIF(INDIRECT(ADDRESS(SUMPRODUCT(ISNUMBER(FIND("所属部门",明细表!1:1))*ROW(明细表!1:1)),SUMPRODUCT(ISNUMBER(FIND("所属部门",明细表!1:1))*COLUMN(明细表!1:1)),1,TRUE,"明细表")&":"&ADDRESS(300,SUMPRODUCT(ISNUMBER(FIND("所属部门",明细表!1:1))*COLUMN(明细表!1:1)),1,TRUE)),A3,INDIRECT(ADDRESS(SUMPRODUCT(ISNUMBER(FIND("得分",明细表!1:1))*ROW(明细表!1:1)),SUMPRODUCT(ISNUMBER(FIND("得分",明细表!1:1))*COLUMN(明细表!1:1)),1,TRUE,"明细表")&":"&ADDRESS(300,SUMPRODUCT(ISNUMBER(FIND("得分",明细表!1:1))*COLUMN(明细表!1:1)),1,TRUE)))
B4=COUNTIF(INDIRECT(ADDRESS(SUMPRODUCT(ISNUMBER(FIND("所属部门",明细表!1:1))*ROW(明细表!1:1)),SUMPRODUCT(ISNUMBER(FIND("所属部门",明细表!1:1))*COLUMN(明细表!1:1)),1,TRUE,"明细表")&":"&ADDRESS(300,SUMPRODUCT(ISNUMBER(FIND("所属部门",明细表!1:1))*COLUMN(明细表!1:1)),1,TRUE)),A3)

坦克小菜 发表于 2021-12-28 08:35:30

B3:=SUMPRODUCT(MMULT((明细表!$A$2:$C$125=A3)*1,{1;1;1})*N(+明细表!A$2:$C$125))
C3:=SUMPRODUCT(MMULT((明细表!$A$2:$C$125=A3)*1,{1;1;1}))
D3:=B3/C3
下拉。

何沧宁 发表于 2022-1-1 22:34:08

这么标准的数据源不考虑用透视表汇总吗?

关宏宇 发表于 2022-1-3 18:58:06

谢谢!
透视表非常简单就可以搞定!也不用担心顺序是否变化。只是我这实际的表格还需要增删和做其它计算,透视表编辑会不方便。所以想用公式解决。

阿耶赖识 发表于 2022-1-4 18:06:59

谢谢您!

吴顺 发表于 2022-1-7 04:54:20

B3=SUMIF(OFFSET(明细表!$A:$A,,MATCH("所属部门",明细表!$1:$1,)-1,),A3,OFFSET(明细表!$A:$A,,MATCH("得分",明细表!$1:$1,)-1,))
C3=COUNTIF(OFFSET(明细表!$A:$A,,MATCH("所属部门",明细表!$1:$1,)-1,),A3)
D3=B3/C3
页: [1] 2 3 4
查看完整版本: 查找关键字符返回所在列的信息,并使用sumif引用实现汇总