Excelで配列の各列に空白列を挿入する計算式

Excelで配列の各列に空白列を挿入する計算式

Excelでデータを扱う際、配列の各列の間に特定の数の空白列を挿入する必要がある場合があります。このブログ記事では、以下の計算式を使用してそのような操作を行う方法について解説します。

=WRAPROWS(TOROW(EXPAND(TOCOL(配列,,),,挿入列数+1,"")),COLUMNS(配列)*(挿入列数+1))

また下の式は上の式と同じ効果を持ちますが、配列と挿入列数の指定が一度で済むようになります。

=LET(_Array, 配列, _Number_Cols, 挿入列数, WRAPROWS(TOROW(EXPAND(TOCOL(_Array,,),,_Number_Cols+1,"")),COLUMNS(_Array)*(_Number_Cols+1)))

配列がA1:D5、挿入列数がA8へ入力されている場合は下記のような式になります。

=WRAPROWS(TOROW(EXPAND(TOCOL(A1:D5,,),,A8+1,"")),COLUMNS(A1:D5)*(A8+1))

=LET(_Array,A1:D5, _Number_Cols,A8, WRAPROWS(TOROW(EXPAND(TOCOL(_Array,,),,_Number_Cols+1,"")),COLUMNS(_Array)*(_Number_Cols+1)))

計算式の効果

この計算式を使用すると、指定した配列の各列の間に特定の数の空白列を挿入することができます。例えば、以下のようなデータがあるとします:

1日6日11日16日
2日7日12日17日
3日8日13日18日
4日9日14日19日
5日10日15日20日

セル A8 に空白列の数を指定します(例えば、A8 に 2 と入力します)。次に、以下の式を入力します:

=WRAPROWS(TOROW(EXPAND(TOCOL(A1:D5,,),,A8+1,"")),COLUMNS(A1:D5)*(A8+1))

この式を適用することで、指定した形式で配列を1列ごとに A8 列の空白列を挿入した結果が得られます(A8+1列で1単位)。

例えば A8 に 2 と入力した場合、次のように空白列が挿入された結果が得られます。

1日6日11日16日
2日7日12日17日
3日8日13日18日
4日9日14日19日
5日10日15日20日

計算式の構造

この計算式は、複数の関数を組み合わせて構成されています。以下に各関数の役割を解説します:

  1. TOCOL関数
    TOCOL(A1:D5,,) は、2次元配列 A1:D5 を1列に変換します。
  2. EXPAND関数
    EXPAND(TOCOL(A1:D5,,),,COLUMNS(A1:D5)*(A8+1), "") は、1列に変換した配列を COLUMNS(A1:D5)*(A8+1) 列に拡張します。ここでは、各要素の間に A8+1 列の空白列が挿入されます。
  3. TOROW関数
    TOROW(EXPAND(...),,) は、拡張された配列を1行に変換します。
  4. WRAPROWS関数
    WRAPROWS(..., COLUMNS(A1:D5)*(A8+1)) は、1行に変換された配列を元の配列の列数に合わせて再配置します。ここでは、元の列数(4列)に A8+1 列の空白列を挿入するため、 4*(A8+1) 列を指定します。

空白行の挿入なら……

空白列の挿入ではなく空白行の挿入ならば以下のページの計算式を参照してください。

Excelで1行ごとに特定の行数の空白行を挿入させる計算式
Excelで1行ごとに特定の行数の空白行を挿入させる計算式 Excelでデータを扱う際、1行ごとに特定の行数の空白行を挿入する必要がある場合があります。このブログ記事では、以下の計算式を使用してそのような操作を行う方法について解説します。こ...

コメント