我們如何合併表的行,如下所示:
| 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 )
)
)
附上我用的數據表