我们如何合并表的行,如下所示:
| X | 是 | | | | | |
| 状态_1 | 1 | | 状态_1 | 6 | 896 | |
| 状态_1 | 2 | | 状态_2 | 7 | |
| 状态_1 | 3 | | 状态_3 | 22 | |
| 状态_2 | 4 | | 状态_4 | 第861章 | |
| 状态_2 | 3 | | 状态_2 | 94 | 94 | |
| 状态_3 | 2 | | 状态_1 | 37 | 第412章 | |
| 状态_3 | 5 | | 状态_2 | 4 | |
| 状态_3 | 10 | | 状态_3 | 18 | |
| 状态_3 | 5 | | 状态_4 | 第353章 | |
| 状态_4 | 第576章 | | 状态_2 | 94 | 94 | |
| 状态_4 | 33 | | 状态_1 | 37 | 37 | |
| 状态_4 | 25 | | 状态_2 | 4 | 4 | |
| 状态_4 | 97 | | | | | |
| 状态_4 | 54 | | | | | |
| 状态_4 | 76 | | | | | |
| 状态_2 | 94 | | | | | |
| 状态_1 | 37 | | | | | |
| 状态_2 | 4 | | | | | |
1.首先对连续出现的行进行分组
2. 计算STATE_1到STATE_4顺序出现的总和
Pfa 示例表供您参考
我使用 2 个新的公式列解决了这个问题
组列公式仅在检测到 :Big Value 时创建分组编号
If( Row() == 1, theGroup = 0 );
If( Is Missing( :Big Value ) == 0,
theGroup
++);
theGroup;
Sum 列公式仅向前查找一行,如果它检测到 :Big Value 的非缺失值,则会将当前组的 :Value 和 :Big Value 的总和相加,然后将它们加在一起
If( Is Missing( :Big Value[Row() + 1] ) == 0,
Sum( Col Sum( :Value, :Group ), Col Sum( :Big Value, :Group ) ),
If( Row() == N Rows( Current Data Table() ) & Is Missing( :Big Value ) == 0,
Sum( :Value, :Big Value )
)
)
附上我用的数据表