特定の行/列の特定の値を合計するやあ、
奇妙なレイアウトのデータ表を使用して作業しています。 以下の表 (実際のデータではなく、似たもの) を見ると、赤い数字すべての合計を求めてから、緑の数字すべての合計を求める必要があります。 追加の列が作成され、Bob の各行が赤色の合計を読み取り、Bill の各行が緑色の合計を読み取ります。 誰かがこれを行う方法の概要を教えてもらえますか?
| 名前 | 年 | テスト1 | テスト2 | テスト 3 |
| ボブ | 1 | 10 | 22 | 34 |
| ボブ | 1 | 10 | 22 | 34 |
| ボブ | 2 | 12 | 24 | 36 |
| ボブ | 2 | 12 | 24 | 36 |
| ボブ | 3 | 14 | 26 | 38 |
| ボブ | 3 | 14 | 26 | 38 |
| 明細書 | 1 | 16 | 28 | 40 |
| 明細書 | 1 | 16 | 28 | 40 |
| 明細書 | 2 | 18 | 30 | 42 |
| 明細書 | 2 | 18 | 30 | 42 |
| 明細書 | 3 | 20 | 32 | 44 |
| 明細書 | 3 | 20 | 32 | 44 |
前もって感謝します!
Re: 特定の行/列の特定の値を合計する非常に役立ちます! ありがとう!!
Re: 特定の行/列の特定の値を合計する申し訳ありませんが、私は急いでいたため、行が本物の重複であるという事実に気づきませんでした (私の例からおわかりかと思います)。 また、列を合計したいということも理解できませんでした。
この厳密な複製を信頼できる場合は、次のようにすることができます。
NamesDefaultToHere(1);
// Make some test data: Note that pairs of rows are duplicates!
dt = New Table( "Test Data",
New Column( "Group", Numeric, "Nominal", Values([1,1,1,1,1,1,2,2,2,2,2,2])),
New Column( "Test 1", Numeric, "Ordinal", Values([2,2,3,3,4,4,5,5,6,6,7,7])),
New Column( "Test 2", Numeric, "Ordinal", Values([1,1,2,2,3,3,4,4,5,5,6,6]))
);
// List of columns for Summary
colList = {:Test 1, :Test 2};
// Summary
dt2 = dt << Summary(Group( :Group ), Sum( Eval(colList) ), StatisticsColumnNameFormat("column"));
// Sum over the columns in the summary, but also divide by 2 to account for the duplicate rows in dt
// (1) Template exprtession
CMD = Expr(dt2 << New Column( "Required Sum", Numeric, "Continuous", Formula( Sum(colsTBD) / 2 )));
// (2) Substitute in the columns we have
SubstituteInto(CMD, Expr(colsTBD), Eval(colList));
// (3) Use the expression we have built
CMD;
Re: 特定の行/列の特定の値を合計するありがとう、
ただし、列の範囲の特定の行のすべての値を単純に追加したいとします。以下のコードの一部を見つけました。これは、列番号 TR と TD の間の行のすべてのセルを追加すると思われます。 ただし、単にセル TD の値を返すだけです。 これはなぜですか?どうすれば機能しますか?
TotRow = dt << 列名(数値)を取得;
TR = N 項目(合計行数);
TD = N アイテム(列名 6);
dt << 新しい列("合計", 数値);
各行( :Total[] = Sum( Column(TotRow[TD :: TR])[]) );
Re: 特定の行/列の特定の値を合計するAnalyze - Tabulate を使用できませんでしたか?行に「名前」の後に「年齢」を入力し、テスト 1 の平均値 (テスト 2 とテスト 3 の列も同様) を使用します。平均値は、重複した値が二重にカウントされることを避けるためのものです。次に、それをデータテーブルにします。そこからは、あなたが望む場所にほぼ到達します。
Re: 特定の行/列の特定の値を合計する各グループの行数が偶数である単純なケースでは、次のようなことができます。
NamesDefaultToHere(1);
// Make some test data
dt = New Table( "Test Data",
Add Rows( 20 ),
New Column( "Group", Numeric, "Nominal", Values(VConcat(J(10, 1, 1), J(10, 1, 2)))),
New Column( "Test 1", Numeric, "Ordinal", Values(J(20, 1, RandomInteger(1,30)))),
New Column( "Test 2", Numeric, "Ordinal", Values(J(20, 1, RandomInteger(1,100))))
);
// Add a 'Subgroup' column
dt << NewColumn("Subgroup", Numeric, Nominal, Values(Repeat((1::2)`, 10)));
// Make a summary table
dt2 = dt << Summary(Group( :Group, :Subgroup ), Sum( :Test 1 ), Sum( :Test 2 ));
dt2 << selectWhere(:Subgroup == 2);
dt2 << hideAndExclude;
dt2 << clearSelect;Re: 特定の行/列の特定の値を合計するはい! まさにそれが私が必要としているものです。
Re: 特定の行/列の特定の値を合計する「名前」の値で定義された各グループ内の (最初の行から始めて) 2 行ごとの合計が必要ですか?