Excel 如何在每个二级分类的首行中计算当前二级分类的总行数
例题描述和简单分析
有 Excel 文件,数据如下所示:
A |
B |
C |
D |
E |
result |
ASDF |
ISO9001 |
xcvb |
TYUI |
USA |
|
ASDF |
ISO9001 |
xcvb |
TYUI |
USA |
|
ASDF |
ISO9001 |
xcvb |
TYUI |
USA |
|
ASDF |
ISO9001 |
xcvb |
TYUI |
USA |
|
ASDF |
ISO9001 |
xcvb |
TYUI |
USA |
|
ASDF |
ISO9002 |
xcvb |
TYUI |
USA |
|
ASDF |
ISO9002 |
xcvb |
TYUI |
USA |
|
ASDF |
ISO9002 |
xcvb |
TYUI |
USA |
|
ASDF |
ISO9003 |
xcvb |
QWER |
USA |
|
ASDF |
ISO9003 |
xcvb |
QWER |
USA |
D列是一级分组,B 列是二级分组,现在新增一列 result,只在每个二级分组的第 1 行的 result 有值,其他 result 空着。规则是:如果本二级分组计数大于 3,则 result=3;如果小于等于 3,则 result= 计数结果,如下:
解法及简要说明
使用 Excel 插件 SPL XLL,在空白单元格写入公式:
=spl("=E(?).group@o(D,B).run(~(1).result=min(~.len(),3)).conj()",A1:F11)
如图:
简要说明:
按D列和 B 列分组,求每组内的记录数,若大于 3,则为 3,否则为该记录数,结果赋予组内的第一个 result。
https://stackoverflow.com/questions/64223882/count-double-entries-in-2-rows-no-more-than-3-times
英文版