複数のシートに表記しているデータを一つのシートにまとめることはよくあります。
集計用のシート、提出用のシート、各個人別に分けたシート、各支店ごとに分けたシート、日付ごとに分けたシート、、、。
とにかく例を挙げればキリがりません。
それらを一つのシートにまとめる時に、一つずつコピーしてまとめていくのは大変です。
今回はこんな時にお勧めな「INDIRECT(インダイレクト)」関数を使って効率的に作業する方法を解説していきます。
□「INDIRECT(インダイレクト)関数」基本的な考え方
A1セルに「6」という数字を入れて、A6セルに「お金」という文字を入れます。
C2とC3のセルに2つの数式を入れてみます。
・C2:「“A“ & A1」
・C3:「INDIRECT(“A“ & A1)」
この数式の回答はこうなります↓
これを図式化して解説するとこうなります↓
簡単に説明するとこういう仕組みな訳ですが、
この関数をどのように活用するかさらに具体的に解説しています。
□別のシートにあるデータを取得する
上記で説明している「INDIRECT(インダイレクト)」関数を具体的にどのように活用していくか具体的に説明してみます。
もう一度ここで復習しますが、
この関数は、セルの参照を文字列で指定して取得する関数です。
引数は1つだけで、参照先を文字列で指定します。
具体的な例を入れて数式にしてみます。こんな感じ↓
○結構複雑ですので詳しく解説します。
①「aさん」という名前のシートの「B12」セルから値を取ってきます。これを数式にすると「aさん!B12」という文字列になります。これを引数として挿入すると、
「INDIRECT(“‘aさん‘!B12“)」
↓
②「aさん」の部分を直接書くのではなく、残業時間シートの「氏名」列のセルを参照するように変更します。ここでは「A2」を参照します。
「INDIRECT(“‘A2‘!B 12“)」
※注意※
上記のように単純に「aさん」を「A2」に変えてしまうと、「A2」がセルではなく、文字列として認識してしまうので、「A2」という名前のシートを探してしまいエラーが出ます。
そこで、
他の文字列と切り離す形にする必要があります。
「INDIRECT(文字列 & A2 & 文字列)
数式にすると↓
「INDIRECT(“ ‘ ”&A2&“ ‘!B12)」となります。
各シートのA2のセルを参照するという意味ですので、「&」で繋ぐことで文字列であるとエクセルが認識しなくなります。
↓
③列を固定する。
「$A 2」でA2の列を固定します。
↓
④完成した数式
「INDIRECT(“‘”&$A2&“‘!B12“)」
結構複雑です。応用的な使い方をまた別の機会に追記します!
□まとめ
※「INDIRECT(インダイレクト)」関数:参照先のセルを表示する
「INDIRECT(参照文字列)」
参照文字列で指定されたセルの内容を表示する。
※参照先の文字列の書き方
→同一ブック内にある別シートを参照する場合
「“シート名!セル」
→別のブックにあるシートを参照する場合
「“‘[ブック名]シート名‘!セル“」