过滤掉矩阵每行中的前 X 个非空单元格
Filtering out the first X non-empty cells in each row of a matrix
我试图通过用几个矩阵公式替换一长串矢量公式来为我的电子表格维护添加一些 QOL。通过 MMULT 计算平均值相当容易。然而,我有一份可以追溯到 3 年前的锦标赛结果列表,因此我计算的另一件事是每个玩家在他们参加的最后 8 场锦标赛中的平均成绩。
虽然我最终设法分别找到了每一行的前 8 个非空条目,但我不知道如何在一个公式中一次找到所有这些条目。如果有人碰巧有想法,我将不胜感激。或者如果有人能告诉我不要在这上面浪费时间,那也很好。
这是有问题的电子表格,但目前还没有尝试完成此工作:
https://docs.google.com/spreadsheets/d/1beVUaOaZtWyFAQ-NsgK1SJjo02av2IANU87vS-yOKM0/edit?usp=sharing
编辑:感谢 player0,答案正是我所希望的。我将尝试最终真正理解该公式中发生的事情。
在 C2 中使用:
=ARRAYFORMULA(IFNA(VLOOKUP(A2:A; QUERY({Results!A5:A127\
ARRAY_CONSTRAIN(SPLIT(TRANSPOSE(QUERY(SORT(TRANSPOSE(
IF(NOT(ISBLANK(Results!B5:DN127));
(Results!B5:DN127-1)/(Results!B4:DN4-1); ));
TRANSPOSE(Results!B3:DN3); 0);;9^9)); " ");9^9; 8)};
"select Col1,(Col2+Col3+Col4+Col5+Col6+Col7+Col8+Col9)/8*4+1
where Col9 is not null"); 2; 0)))
我试图通过用几个矩阵公式替换一长串矢量公式来为我的电子表格维护添加一些 QOL。通过 MMULT 计算平均值相当容易。然而,我有一份可以追溯到 3 年前的锦标赛结果列表,因此我计算的另一件事是每个玩家在他们参加的最后 8 场锦标赛中的平均成绩。
虽然我最终设法分别找到了每一行的前 8 个非空条目,但我不知道如何在一个公式中一次找到所有这些条目。如果有人碰巧有想法,我将不胜感激。或者如果有人能告诉我不要在这上面浪费时间,那也很好。
这是有问题的电子表格,但目前还没有尝试完成此工作: https://docs.google.com/spreadsheets/d/1beVUaOaZtWyFAQ-NsgK1SJjo02av2IANU87vS-yOKM0/edit?usp=sharing
编辑:感谢 player0,答案正是我所希望的。我将尝试最终真正理解该公式中发生的事情。
在 C2 中使用:
=ARRAYFORMULA(IFNA(VLOOKUP(A2:A; QUERY({Results!A5:A127\
ARRAY_CONSTRAIN(SPLIT(TRANSPOSE(QUERY(SORT(TRANSPOSE(
IF(NOT(ISBLANK(Results!B5:DN127));
(Results!B5:DN127-1)/(Results!B4:DN4-1); ));
TRANSPOSE(Results!B3:DN3); 0);;9^9)); " ");9^9; 8)};
"select Col1,(Col2+Col3+Col4+Col5+Col6+Col7+Col8+Col9)/8*4+1
where Col9 is not null"); 2; 0)))