如何用BYROW与COUNTA函数展示符合条件的姓名及工作日数?
问题描述
原始数据表格
| NAME | SURNAME | DAY1 | DAY2 | DAY3 |
|---|---|---|---|---|
| JOHN | WILSON | X | ||
| JACK | HARRY | X | X | x |
当前使用公式
=SORT(FILTER(A2:B,BYROW(C3:E,LAMBDA(ROW, COUNTA(ROW)<3)));1;1)
该公式仅提取工作日少于3天的人员姓名与姓氏,现需调整公式,同时展示姓名、姓氏及通过COUNTA统计的工作日数(不统计空单元格),预期结果如下:
预期结果表格
| NAME | SURNAME | WORKDAY |
|---|---|---|
| JOHN | WILSON | 1 |
解决方案
可以通过HSTACK将姓名姓氏列与工作日统计数合并,再结合FILTER和SORT实现需求,调整后的公式如下:
=SORT(FILTER(HSTACK(A2:B, BYROW(C2:E, LAMBDA(r, COUNTA(r)))), BYROW(C2:E, LAMBDA(r, COUNTA(r)<3))), 1, 1)
公式说明:
BYROW(C2:E, LAMBDA(r, COUNTA(r))):逐行统计C2到E列的非空单元格数量,即每个人员的工作日数HSTACK(A2:B, ...):把姓名姓氏列(A2:B)和上述统计的工作日数合并成一个包含三列的新数组FILTER(..., BYROW(C2:E, LAMBDA(r, COUNTA(r)<3))):筛选出工作日数小于3的行SORT(..., 1, 1):按第一列(姓名)升序排序
注意:原公式中的C3:E修正为C2:E,确保从数据起始行开始统计,避免遗漏数据。
内容的提问来源于stack exchange,提问作者Esat Kurtul
相关产品推荐
相关产品推荐

