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関数を知っていると、色々現場レベルでつかるかもしれませんので、機会がありましたら使ってみてはいかかでしょうか。