|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 Holiday2022 于 2024-3-7 16:06 编辑
在做论坛上[求个汇总公式-Excel函数与公式-ExcelHome技术论坛 -](https://club.excelhome.net/thread-1685982-1-1.html)这一道题时,遇到了一些问题。我将我的问题简化,在此向各位老师请教。
题目内容:
求酒店总收入。酒店总收入=该酒店下各技师收入之和,各技师收入=其科目A+科目B+科目C之和。
我自己提出的要求:
1. 需要用一个公式得到各酒店的总收入,将最终结果横向(HSTACK)堆叠
我的解题步骤:
1. 先对A列用UNIQUE函数取唯一值
2. 用BYROW函数计算每一行的和,得到各技师三项收入:
- BYROW(科目得分,LAMBDA(x,SUM(x)))
复制代码 3. 堆叠酒店名称、技师名称、各技师收入,并记为构建新表:
4. 用SUMIFS求酒店总收入
- SUMIFS(TAKE(构建新表,,-1),TAKE(构建新表,,1),酒店名称)
复制代码 5. 用HSTACK将结果1和4横向堆叠。
将上述公式整合起来就是:
- =LET(酒店名称,UNIQUE(A2:A31),
- 酒店和相应技师,A2:B31,
- 科目得分,C2:E31,
- 各技师三项收入,BYROW(科目得分,LAMBDA(x,SUM(x))),
- 构建新表,HSTACK(酒店和相应技师,各技师三项收入),
- SUMIFS(TAKE(构建新表,,-1),TAKE(构建新表,,1),酒店名称)
- )
复制代码
遇到的困难,即问题1:
在上述第4步中,公式为SUMIFS()的第一参数似乎不支持由别的函数组成的数组(我记得COUNTIFS也是这个尿性),结果为`#VALUE!`。而当我把上述步骤用虚拟列表式出来时,SUMIFS()的结果是正确的。我该如何解决这一问题呢?
(2024-03-07补充:上面的说法更合适。SUMIFS()的第一参数,支持多维引用,不支持内存数组)
问题2:
为解决问题1,我自己也尝试了一个方法,见sheet2,我通过scan来循环c列,公式是:
- =SCAN(0,C2:C31,IF(OFFSET(y,,-2)=OFFSET(y,-1,-2),x+y,y))
复制代码 结果显示`#VALUE!`。请帮我看看问题出在了哪里?用修改后的公式能解决问题1吗?
|
|