MS Excel : 複数のリストを 1 つにまとめる

MS Excel : 複数のリストを 1 つにまとめる

きっと私が思っているより簡単だと思います。

複数の垂直リストがあります。例:

項目 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

リストが列になっている場合、数式を入力してみますB1

=IFERROR(VLOOKUP("Item "&(COLUMN()-1)&IF(ROW()=1;"";"."&(ROW()- 1));$A:$A;1;0);"")

空のセルが見えるまで、これを右と下に伸ばします。 結果

答え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) に置き換える必要があります。

関連情報