首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用函数作为数组公式计算每一行的数据

使用函数作为数组公式计算每一行的数据
EN

Stack Overflow用户
提问于 2022-03-15 03:22:59
回答 1查看 113关注 0票数 1

该函数所做的是转置一组ids和一行不断变化的数量。作为回报,具有数量的行将与id一起返回,其余的数组用于查询定价范围。最后,将所有id和它们各自的数量的总价相加。最后的总价乘以CT中相应的行。

现在,我在CW4:CW列的每一行都有一个函数,因为我似乎无法得到计算数据的数组公式。

电子表格(隐藏不必要的列和页):https://docs.google.com/spreadsheets/d/1E5p0WPQg6F8ZlBDWpKrJKHoXIlfQOOYYs7491Mr-EIA/edit?usp=sharing

如果我的解释不是最好的,现在已经很晚了,我已经花了很多时间在这个问题上,我对此表示歉意。如果您需要澄清或示例说明,请随时发表评论。

功能:

代码语言:javascript
复制
=ARRAYFORMULA(IFERROR(IFNA(
QUERY(
{VLOOKUP(QUERY({SPLIT(TRANSPOSE(CX$3:EO$3 & " " & CX4:EO4), " ", 1, 0)}, "SELECT Col1 WHERE Col2 IS NOT NULL", 0), EP$4:ER, 3) *
QUERY({SPLIT(TRANSPOSE(CX$3:EO$3 & " " & CX4:EO4), " ", 1, 0)}, "SELECT Col2 WHERE Col2 IS NOT NULL", 0)}, 
"SELECT sum(Col1) LABEL sum(Col1) ''", 0) / CT4, ""), ""
))

我需要作为数组工作的引用:

代码语言:javascript
复制
CX4:EO4
CT4

数据图:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-18 22:21:23

尝试:

代码语言:javascript
复制
=ARRAYFORMULA(IFERROR(MMULT(IFERROR(INDIRECT("I4:AZ"&MAX(ROW(A4:A)*(A4:A<>"")))*
 HLOOKUP(IF(INDIRECT("I4:AZ"&MAX(ROW(A4:A)*(A4:A<>"")))="",,I3:AZ3), 
 TRANSPOSE(BA:BC), 3, ), 0), SEQUENCE(COLUMNS(I:AZ), 1, 1, ))/E4:E))

演示电子表格

或更短:

代码语言:javascript
复制
=INDEX(IFERROR(MMULT(IFNA(INDIRECT("I4:AZ"&MAX(ROW(A4:A)*(A4:A<>"")))*
 VLOOKUP(IF(INDIRECT("I4:AZ"&MAX(ROW(A4:A)*(A4:A<>"")))="",,I3:AZ3), 
 BA:BC, 3, ), 0), FLATTEN(COLUMN(I:AZ))^0)/E4:E))

更短但更慢(不建议使用):

代码语言:javascript
复制
=INDEX(IFERROR(MMULT(IFNA(I4:AZ*VLOOKUP(IF(I4:AZ="",,I3:AZ3), 
 BA:BC, 3, ), 0), FLATTEN(COLUMN(I:AZ))^0)/E4:E))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71476654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档