Google 工作表:水平(行)条件 Arrayformula
Google Sheets : horizontal (row) conditional Arrayformula
我的第 1 行包含一些日期(未确定的数字,因为最终公式将是一个动态数字)并且我希望第 5 行显示日期为 header 的每一列的平均值。
正在尝试使这个数组公式起作用:
arrayformula(iferror(
if(B1:1 = "",,
AVERAGE(
indirect(
SUBSTITUTE(ADDRESS(1,COLUMN(B1:1),4),"1","")
& 7 & ":" &
SUBSTITUTE(ADDRESS(1,COLUMN(B1:1),4),"1","")
)))))
我想我确实在 arrayformula 中找出了问题,我看不出问题出在哪里?
这是屏幕截图:
这是电子表格的 link:
https://docs.google.com/spreadsheets/d/1GbIWwv0lq6nVdn4dHkSO0-QqZYEPCwJtntCu8wcSd9Q/edit?usp=sharing
QUERY
方法:
=ArrayFormula(IF(B1:1="",,IFERROR(VLOOKUP(COLUMN(B1:1),QUERY(SPLIT(FLATTEN(TRANSPOSE(COLUMN(B7:7)&"♦"&B7:1000)),"♦"),"select Col1,avg(Col2) where Col2 is not null group by Col1 label avg(Col2) ''",0),2,FALSE),)))
MMULT
方法:
=ArrayFormula(IF(B1:1="",,IFERROR(MMULT(N(TRANSPOSE(ROW(B7:1000)^0)),N(B7:1000))/MMULT(N(TRANSPOSE(ROW(B7:1000)^0)),N(B7:1000<>"")),)))
我的第 1 行包含一些日期(未确定的数字,因为最终公式将是一个动态数字)并且我希望第 5 行显示日期为 header 的每一列的平均值。
正在尝试使这个数组公式起作用:
arrayformula(iferror(
if(B1:1 = "",,
AVERAGE(
indirect(
SUBSTITUTE(ADDRESS(1,COLUMN(B1:1),4),"1","")
& 7 & ":" &
SUBSTITUTE(ADDRESS(1,COLUMN(B1:1),4),"1","")
)))))
我想我确实在 arrayformula 中找出了问题,我看不出问题出在哪里?
这是屏幕截图:
这是电子表格的 link:
https://docs.google.com/spreadsheets/d/1GbIWwv0lq6nVdn4dHkSO0-QqZYEPCwJtntCu8wcSd9Q/edit?usp=sharing
QUERY
方法:
=ArrayFormula(IF(B1:1="",,IFERROR(VLOOKUP(COLUMN(B1:1),QUERY(SPLIT(FLATTEN(TRANSPOSE(COLUMN(B7:7)&"♦"&B7:1000)),"♦"),"select Col1,avg(Col2) where Col2 is not null group by Col1 label avg(Col2) ''",0),2,FALSE),)))
MMULT
方法:
=ArrayFormula(IF(B1:1="",,IFERROR(MMULT(N(TRANSPOSE(ROW(B7:1000)^0)),N(B7:1000))/MMULT(N(TRANSPOSE(ROW(B7:1000)^0)),N(B7:1000<>"")),)))