まず、配列では「,」は列の区切り、「;」は行の区切りとなる。
10,20 は 10 20
10;20 は 10 20 となる。
この形で元のデータの並びを表すと {a11,a12;a21,a22;a31,a32} となる。
次に IF({1,0},TRANSPOSE(A1:C1),TRANSPOSE(D1:F1)) これを分解してみていく。 A1:C1 は配列に直すと{A1,B1,C1}={a11,a21,a31}となる。 元々のデータでは縦に並んでいるためTRANPOSE関数を使って {A1;B1;C1}={a11;a21;a31} となるようにしている。 (D1:F1も同じ)
次にIF文の条件を配列にしているのと、数値を論理値に変換する際に「0」が「FALSE」、 「0」以外が「TRUE」と変換される事でIF文の結果は {IF(1,TRANSPOSE(A1:C1),TRANSPOSE(D1:F1)),IF(0,TRANSPOSE(A1:C1),TRANSPOSE(D1:F1))} ↓ {TRANSPOSE(A1:C1),TRANSPOSE(D1:F1)} ↓ {a11;a21;a31,a12;a22;a32} {a11,a12;a21,a22;a31,a32} (下二つは同等、ただしExcelでは{a11;a21;a31,a12;a22;a32}の形式は受け付けない) と元のデータ並びと同じになる。
簡単な説明は以上となる。 |