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日 |
計算式の構造
この計算式は、複数の関数を組み合わせて構成されています。以下に各関数の役割を解説します:
- TOCOL関数:
TOCOL(A1:D5,,)
は、2次元配列A1:D5
を1列に変換します。 - EXPAND関数:
EXPAND(TOCOL(A1:D5,,),,COLUMNS(A1:D5)*(A8+1), "")
は、1列に変換した配列をCOLUMNS(A1:D5)*(A8+1)
列に拡張します。ここでは、各要素の間にA8+1
列の空白列が挿入されます。 - TOROW関数:
TOROW(EXPAND(...),,)
は、拡張された配列を1行に変換します。 - WRAPROWS関数:
WRAPROWS(..., COLUMNS(A1:D5)*(A8+1))
は、1行に変換された配列を元の配列の列数に合わせて再配置します。ここでは、元の列数(4列)にA8+1
列の空白列を挿入するため、4*(A8+1)
列を指定します。
空白行の挿入なら……
空白列の挿入ではなく空白行の挿入ならば以下のページの計算式を参照してください。
Excelで1行ごとに特定の行数の空白行を挿入させる計算式
Excelで1行ごとに特定の行数の空白行を挿入させる計算式Excelでデータを扱う際、1行ごとに特定の行数の空白行を挿入する必要がある場合があります。このブログ記事では、以下の計算式を使用してそのような操作を行う方法について解説します。この...
コメント