2015年1月19日月曜日

Excel活用術 Tips (INDIRECT,SheetName列挙)

IT関係の仕事に勤めていると、Excelの手軽さって、あまり業務に活用されないのですが、
改めて使ってみると、大変便利なツールだなと、日々感じています。

⇒いわゆる業務システムだと、Excelの柔軟さが仇となったりするので、
 きっちりした業務がお好みのお客様には使えないのです。

ワークブックのシート名を列挙する


○名前の管理にて、以下関数を埋め込み。 (ここでは例として、名前をSheetNamesとします)

=IF(GET.WORKBOOK(4)>=ROW(),MID(INDEX(GET.WORKBOOK(1),ROW()),FIND("]",INDEX(GET.WORKBOOK(1),ROW()))+1,31)&T(NOW()),"")

○どこかのセルに、=SheetNames と記述

これだけで、シート名が出ます。
縦に並べて貼り付けると、シート名一覧の出来上がり。
※ネットで拾った情報の備忘録です。(MARBIN)さん、ありがとうございます。



別シートの参照





=IF(INDIRECT("'参照シート'!A1")="","",INDIRECT("'参照シート'!A1"))

別のシート名を動的に指定して、実装する例です。
これを、先ほどのワークシート名列挙と合わせると、全部とれたりします。

シート名をシングルクォーテーションで括ることを忘れないでください。


上記を組み合わせた使い方


=INDIRECT("'"&C3&"'!AU4")

シート名を動的に参照し、値を表示しています。
シート名列の横に並べれば、動的に全シートの指定値が取得できます。


ちょっと注意事項

関数をあれやこれや活用すると、ものすごく便利なのは確かですが、
エクセルを開いた際、または、初回に関数が評価されるときなどには
たくさんの処理が動き、かたまった状態に見える事も出てきます。

適切に使いたい分だけを使う、時には疎結合 (ブック間のリンクなど )も
意識して使うことも大事になります。


0 件のコメント: