テーブル内の個々の行の比較を自動化する

テーブル内の個々の行の比較を自動化する

それぞれ 3 つの座標を持つ 10 個の測定値のシリーズを含むデータセットがあります。測定値間の 3D 直交座標の差、つまり測定値 1 と測定値 2、測定値 1 と測定値 3 などを計算しています。

あらゆる可能な出力 (1 対 2-10、2 対 3-10 など) を取得する計算を自動化するにはどうすればよいでしょうか?

ありがとう

答え1

これはどうですか:

ここに画像の説明を入力してください

使用される数式:


  • 組み合わせ[ID]:=ROW()-ROW(Combinations[[#Headers],[ID]])
  • 組み合わせ[H1]:=SUM(([@ID]=HelpingTable[H1])*1)配列数式として( によって確認CTRL+SHIFT+ENTER
  • 組み合わせ[M1]:=SUM(INDEX([H1],1):[@H1])
  • 組み合わせ[M2]:=IF([@H1]=1,[@M1]+[@H1],OFFSET([@M2],-1,0)+1)
  • 組み合わせ[X1]:=INDEX(MeasurementTable[X],MATCH([@M1],MeasurementTable[Meas. No.],0))
  • Combinations[Y1]とCombinations[Z1]は内部の文字を変更するだけです[]
  • 組み合わせ[X2]:=INDEX(MeasurementTable[X],MATCH([@M2],MeasurementTable[Meas. No.],0))
  • Combinations[Y2]とCombinations[Z2]は内部の文字を変更するだけです[]
  • 組み合わせ[違い]:=SQRT(([@X1]-[@X2])^2+([@Y1]-[@Y2])^2+([@Z1]-[@Z2])^2)

  • HelpingTable[測定]:=ROW()-ROW(HelpingTable[[#Headers],[Meas.]])
  • ヘルプテーブル[H1]:=ABS(((MAX([Meas.])-[@[Meas.]]+1)-1)/2*(MAX([Meas.])-[@[Meas.]]+1)-45)+1

MeasurementTable にはデータのみが含まれ、関数は含まれません。

必要に応じてテーブルを伸縮します。

組み合わせテーブルに必要な行:=COMBIN(<Measuremnt count>,2)

答え2

これは私がより伝統的なアプローチだと考えているものです(同じデータを使用しています)ルユーザー

ここに画像の説明を入力してください

行/列見出し (列 F と行 1) を含む表を作成します。次に、セル G2 で距離の式を使用します (出力表にコピー/貼り付けして入力します)。

=SQRT(SUM((VLOOKUP(G$1,Table1,SEQUENCE(,3,2),FALSE)-VLOOKUP($F2,Table1,SEQUENCE(,3,2),FALSE))^2))

壊す:

SQRT(SUM(( - )^2))距離式の外側部分

VLOOKUP(lookup_value)行/列ヘッダーに基づいて最初の測定番号または2番目の測定番号を決定する

SEQUENCE()テーブルの2、3、または4番目の(X、Y、Z)列の値を返します。

Lluserの結果をピボットすると、私が提示したものと同じ出力テーブルが得られるはずです。

関連情報