スプレッドシート 数式 シート名

オフィスソフト

スプレッドシートの数式でシート名を使う方法

スプレッドシートで、数式の中にシート名を変数として入れたいと思ったことはないでしょうか。

本記事では、「vlookup」関数と「indirect」関数を組み合わせて、別のシートにある表のデータを検索して、目的のシートにデータを表示する方法を、具体例を用いて解説します。

具体例(仮想通貨のトレード記録表)

完成品

例えば、このように仮想通貨(暗号資産)の「トレード記録表」を作りたいとします。

 

前提として、「トレード記録表」と同じスプレッドシート内に、各通貨の1年分のレートが記載された通貨名のシートがあるものとします。

 

日本円→日本円のレートは「1」固定なのでともかく、他の通貨と日本円のレートは日々変化しています。
「トレード記録表」の1行1行について通貨と日付を見て、レート表でレートを調べるのは、手間がかかりますし、ミスも出そうですよね。

そこで、表の日付と通貨(赤枠実線)を入力すると、レート(青枠点線)が自動的に埋まるように数式を考えてみます。

vlookup

まずは、シートは手作業で選んで、日付だけは自動で検索してくれるような数式を書いてみます。

JPYはレート関係ないので、2行目のETHのセルでやってみます。

 

「=vlookup」で

 

第1引数の検索キーは、日付なので「A4」です。

 

第2引数の範囲は

 

ETHシートの開始価格の範囲を指定します。
データが2行目から365日分なので366までになっています。
今回はA列の日付をキーにして、B列のレートの値を使うので、AB列が対象です。

 

他の行にもコピーして使いたいので、数字には「$」を追加しておきます。
(「$」を付けないと、例えば一つ下のセルにコピーすると範囲が「B3:B377」にずれます)

 

選択した範囲の左から2列目を表示したいので、指数は「2」にします。

 

最後の引数は今回のレート表のようにキーとなる値(A列の日付データ)のフォーマットが揃っていて重複もなく、並び順も整っているときは考えなくてもよいのですが、「false」にしておきました。

 

こちらが完成した数式です。

 

これでレートが表示されましたが、今のままだと通貨がETHの列でしか使えません。そこで、他の通貨でも使えるように、第2引数内の「ETH」という値を、C列の通貨から取ってくるように変更したいと思います。

vlookupの中でindirectを使う

数式の中で使われる「シート名」の部分をセルから取ってくるためには、「indirect」関数を使います。

使う場所は、「vlookup」の第2引数です。

 

第2引数全体を「indirect()」で囲んで、シート名「ETH」を「C3」に置き換えて、残りの「!$A$2:$B$366」は「””」で囲んだ上で、「&」で繋ぎます。
すると、このようになります。

 

これで、別の通貨の行にコピー&ペーストして使えるようになりました。

手順のまとめ

以上のように、スプレッドシートの数式内でセルに入力されたシート名を参照したい場合、「indirect」関数を使えばよいです。

「vlookup」関数で「indirect」関数を使う場合、第2引数全体を「indirect」関数で囲むようにします。

 

通貨名のシートを作った手順をこちらに書いているので、よろしければご覧ください。

暗号資産 レート一覧の作成方法
暗号資産のレート一覧の作成方法をまとました。CoinMarketCap日本語ページの履歴データを拝借します。
タイトルとURLをコピーしました