to 稻草人367:原帖链接
这是SUMif三维引用的经典用法 =SUM(SUMIF(INDIRECT({"A","B","C","D"}&"!L4:L100"),$A4&$B4,INDIRECT({"A","B","C","D"}&"!R4C"&COLUMN()&":R100C"&COLUMN(),))) 主要在Sumif——第1参数黄色,第2参数绿色,第3参数红色: 我们知道=Sumif(A4:A100,B4,C4:C100)——这么一个最常见的Sumif的基本用法,表示对“A列中项目和B4单元格相同所对应的C列的数值”进行条件求和。 第一参数:Indirect("A!L4:L100")——引用的是A表的L4:L100区域,Indirect({"A","B","C","D"}&"!L4:L100")引用的是A、B、C、D表的L4:L100区域,是4个区域。注意:我在ABCD这4个表的L列设置了辅助列,将序号和颜色合并文本。 第二参数:A4&B4——序号和颜色合并文本。 第三参数:还是Inidrect引用,只不过引用样式改成了R1C1引用样式。比如Indirect("A!R4C3:R100C3",0)——表示引用A表的“第4行第3列到第100行第3列”即C4:C100区域。为了右拖复制的时候,第3列能够自动变为第4列、第5列……,则把R4C3改为"R4C"&column()——column()取得当前单元格所在列号。所以:第三参数引用的是A、B、C、D表的C4:C100,并且可以随着向右拖动复制变为D4:D100、E4:E100等区域。 这么一来,Sumif得到的就是4个表中每个表分别对应序号和颜色的数量总数,然后再用SUM对这4个表的总数(相当于每个表的小计)求和,就是4个表——满足序号和颜色与A4、B4单元格一致的数量汇总了。
结合gvntw版主的Lookup在内存数组中的处理,可以用Lookup和宏表函数取得无规律工作表名(除去汇总表)的其他工作表名数组,并由此替代上面的{"A","B","C","D"}之类的,则应用范围更广!
实例见http://club.excelhome.net/viewthread.php?tid=165500&px=0
[此贴子已经被作者于2007-5-10 8:36:27编辑过] |