6/25/2021

Excel。縦一列の氏名を、3列編成したいけど、コピぺじゃ大変なんです。【Configuration】

Excel。縦一列の氏名を、3列編成したいけど、コピぺじゃ大変なんです。

<INDEX関数>

やりたいことは単純でも、Excel VBAにするほどじゃないし、けど、コピー&ペーストじゃ面倒という作業は結構あります。


例えば、次のような縦一列の名簿


A1:C3の名簿のC列の氏名を、E1:G5にあるような、3列編成の表で表示するとしたら、いちいち、コピー&ペーストで処理しようとすると、簡単ではありますが、ホント大変です。


そこで、何か効率的な方法はないかということ、このような場合には、「INDEX関数」をつかうことで、一発解決します。


ただ、準備が必要になります。


E10:G13に、配置したい順番に、番号を振っていきます。


準備はこれだけです。


E2にINDEX関数をつかった数式を作っていきます。

INDEX関数は、手入力するほうが楽な関数なので、手入力で設定することをおススメします。

=INDEX($C$2:$C$13,E10)


あとは、3列編成になるように、オートフィルで数式をコピーしていきます。


これで、3列編成で表示することができました。


INDEX関数は、2種類ありますが、今回は、配列タイプで算出しています。


配列が、氏名の列なので、$C$2:$C$13。オートフィルで数式をコピーするので、絶対参照を忘れないようにしましょう。


行番号は、E10。

列番号は、氏名の1列だけなので、省略しました。


たった、これだけなんですね。ですが、時間短縮の効果抜群なのが、INDEX関数の特徴でもあります。

仕組みがわかれば、INDEX関数だけで、様々な編成した表にすることができます。


例えば、次のようなパターン


縦一列を、変則的な横二列編成の表で表示してみました。


上下方向のオートフィルで数式をコピーは、セル参照でも対応できるかもしれませんが、上下方向の表を横方向にするためには、オートフィルで数式をコピーというわけにはいきません。


しかし、INDEX関数をつかうことで、このような表に編成しなおすことも容易です。


ポイントは、行番号をどのようにしたらいいのかということです。


この表のように、1行目と4行目にある数値を行番号として使用することができれば、3列編成のときのように、配置するための別表を用意する必要はありません。


今回紹介したINDEX関数を知っていると、色々現場レベルでつかるかもしれませんので、機会がありましたら使ってみてはいかかでしょうか。