数组公式根据 table 中具有关联值的单元格的匹配条件计算范围平均值
array formula to calculate range average based on matching criteria of cells with associated values in a table
我正在努力更新 google 电子表格工作簿,使其具有一些附加功能。
我有各种流经部门的项目。我想根据他们的状态来衡量进度,从下拉菜单中选择。这样我们就可以看到我们在工作上的进展情况。
我有一个示例文件,其中包含工作版本和我要解决的新版本:
Example File
原始版本有状态字和关联值。在下拉列表中选择状态 - 然后根据值和条目数计算项目和部门的平均值。
条目包括:完成 = 100%、活动 = 50%、队列 = 0%、None = 忽略值
在新版本中,我想在 table 中包含更多状态词和值,以便我可以根据项目需要更新它们。
工作版本中的公式为:
=ARRAYFORMULA(TRANSPOSE(IF(LEN(TRANSPOSE(C10:10)),MMULT(IFERROR((N(REGEXMATCH(TRANSPOSE(C10:O), "Done"))+N(REGEXMATCH(TRANSPOSE(C10:O),"Active"))/2)/MMULT(N(REGEXMATCH(TRANSPOSE(C10:O),"[^None]")),(ROW(C10:C)^0)),0),(ROW(C10:C)^0)), )))
工作版本截图:
具有额外 table 值的新版本:
感谢@player0 的原始版本。
如果将状态 None
的值更改为 #N/A
,则可以使用以下公式:
对于列
=ArrayFormula(IFERROR(MMULT(COLUMN($A:$J)^0,IFERROR(VLOOKUP(C16:O25,$A:$B,2,false),0))/MMULT(COLUMN($A:$J)^0,--(ISNUMBER(VLOOKUP(C16:O25,$A:$B,2,false)))),""))
行数
=ArrayFormula(IFERROR(MMULT(IFERROR(VLOOKUP(C16:O25,$A:$B,2,false),0),ROW(A1:A13)^0)/MMULT(--(ISNUMBER(VLOOKUP(C16:O25,$A:$B,2,false))),ROW(A1:A13)^0),""))
我正在努力更新 google 电子表格工作簿,使其具有一些附加功能。
我有各种流经部门的项目。我想根据他们的状态来衡量进度,从下拉菜单中选择。这样我们就可以看到我们在工作上的进展情况。
我有一个示例文件,其中包含工作版本和我要解决的新版本: Example File
原始版本有状态字和关联值。在下拉列表中选择状态 - 然后根据值和条目数计算项目和部门的平均值。
条目包括:完成 = 100%、活动 = 50%、队列 = 0%、None = 忽略值
在新版本中,我想在 table 中包含更多状态词和值,以便我可以根据项目需要更新它们。
工作版本中的公式为:
=ARRAYFORMULA(TRANSPOSE(IF(LEN(TRANSPOSE(C10:10)),MMULT(IFERROR((N(REGEXMATCH(TRANSPOSE(C10:O), "Done"))+N(REGEXMATCH(TRANSPOSE(C10:O),"Active"))/2)/MMULT(N(REGEXMATCH(TRANSPOSE(C10:O),"[^None]")),(ROW(C10:C)^0)),0),(ROW(C10:C)^0)), )))
工作版本截图:
具有额外 table 值的新版本:
感谢@player0 的原始版本。
如果将状态 None
的值更改为 #N/A
,则可以使用以下公式:
对于列
=ArrayFormula(IFERROR(MMULT(COLUMN($A:$J)^0,IFERROR(VLOOKUP(C16:O25,$A:$B,2,false),0))/MMULT(COLUMN($A:$J)^0,--(ISNUMBER(VLOOKUP(C16:O25,$A:$B,2,false)))),""))
行数
=ArrayFormula(IFERROR(MMULT(IFERROR(VLOOKUP(C16:O25,$A:$B,2,false),0),ROW(A1:A13)^0)/MMULT(--(ISNUMBER(VLOOKUP(C16:O25,$A:$B,2,false))),ROW(A1:A13)^0),""))