
きっと私が思っているより簡単だと思います。
複数の垂直リストがあります。例:
項目 1
項目2
項目3
項目4
項目1.1
項目2.1
項目3.1
項目4.1
項目 1.2
項目2.2
項目3.2
項目4.2
これらの項目を下図のように水平リストに並べたい
項目 1 | 項目2 | 項目3 | 項目4 |
---|---|---|---|
項目1.1 | 項目2.1 | 項目3.1 | 項目4.1 |
項目 1.2 | 項目2.2 | 項目3.2 | 項目4.2 |
答え1
答え2
各項目に「新しい行番号」を割り当ててみましょう。各リストに 4 つの項目があることがわかっている場合は、次のようになります。
=QUOTIENT(ROW()-1,4)+1
次のように、新しい行番号を使用して元のデータをフィルタリングできます。
=TRANSPOSE(FILTER($A$1:$A$12,$B$1:$B$12=ROW()))
行 1 では、ROW()=1 です。この FILTER は列 A の最初の 4 つの値を返します。次に、TRANSPOSE を使用して水平方向にピボットします。数式を行 2 と 3 までドラッグすると、残りのデータを取得できます。
必要に応じて、最初の手順を省略し、代わりにこれを使用することもできます。
=TRANSPOSE(FILTER($A$1:$A$12,QUOTIENT(ROW($A$1:$A$12)-1,4)+1=ROW()))
答え3
私の想定では、データは規則的 (順序付き) かつ完全であり、スキップされた項目はありません。基本的に、nxm = T である anxm テーブルにラップする Tx1 配列があります。
テーブル内の位置 (ROW,COLUMN) を配列のインデックスとして使用します。配列が sheet1 の列 A にあり、新しいテーブルが sheet2 にあると仮定します。この場合、sheet2 の A1 は次のようになります。
=INDEX(SHEET1!$A:$A, COLUMN()+(ROW()-1)*m)
ここで、m は折り返す列の数 (例では 4) に置き換える必要があります。