以下に示すように、テーブルの行を結合するにはどうすればよいですか。
| バツ | Y | | | | | |
| 状態_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 の連続発生の合計を計算します。
参考のためにサンプルテーブルを用意してください
2つの新しい数式列を使用して問題を解決しました
グループ列の式は、:Big Value が検出されたときにグループ化番号を作成するだけです
If( Row() == 1, theGroup = 0 );
If( Is Missing( :Big Value ) == 0,
theGroup
++);
theGroup;
Sum 列の数式は 1 行先を参照するだけで、: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 )
)
)
私が使用したデータテーブルを添付します