おはよう、
識別列の値が同一である場合に、MG1 - MG2 の差を計算する列を作成したいと考えています。
つまり、2つの黄色の値の間の差、または2つの青色の値の間の差です。
その公式はどのようなものになるでしょうか?
心から
Capture d'écran 2026-08-26 153209.pngCapture d'écran 2026-08-26 153209.pngスクリーンショット 2026-08-26 153209.png
こんにちは-
おそらく、識別番号でラベル付けされたバッチ処理が行われていると思われます。MG1、MG2の値は、それぞれ異なるタイミングで、それぞれ独自の行に記録されます。
まず最初に検討すべき点は、これほど多くの欠落項目があるにもかかわらず、この行構造を維持するかどうかです。
バッチごとに1行を持つ構造を考えてみましょう。
テーブルメニュー、概要
識別情報によるグループ化
MG1とMG2を選択し、平均値を使用します(欠損値は無視されます)。
データがクリーンでない可能性がある場合は、範囲(ゼロ以外の値を調査する)も含める。
そうすると、バッチごとに集計された表が作成され、差分の計算が容易になります。
Data Table( "SAMPLE" ) << Summary(
Group( :Identification ),
Mean( :MG1 ),
Mean( :MG2 ),
Range( :MG1 ),
Range( :MG2 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column stat" ),
output table name( "Summary of SAMPLE" )
);
元のデータ テーブル内で実行したい場合は、次のような数式列を使用します。
Col Mean( :MG1, :Identification ) - Col Mean( :MG2, :Identification )
MG1がその識別子に対して入力され、かつMG2が存在する特定の行においてのみ計算を行う代替案。
If( !Is Missing( :MG2 ) & !Is Missing( Col Mean( :MG1, :Identification ) ),
Col Mean( :MG1, :Identification ) - Col Mean( :MG2, :Identification ),
.
)