バッテラが如く

プログラミングしましょ!

【スプレッドシート】縦列の項目を横列で参照する方法

はじめに

縦列でテーブルを作成したものを別シートの横列で並びで参照したい場合は、どうすればいいかという疑問がありました。   イメージを図で説明します。  

・図1(シート1)

図2(シート2)

シート1の縦列テーブルをシート2で横列で参照するのがやりたいことです。 INDIRECTとCOLUMNという関数を組み合わせると実現できるということが、 わかりましたので方法を解説したいと思います。

シート1で参照元の値を作成する

どの列でもいいので、縦にデータを並べてます。

特に数値ではないと駄目など禁則はないです。

シート2でシート1の値を参照する

INDIRECT関数を使います、

INDIRECT関数は式の計算結果を元に別シートの値を参照できるという機能です。

関数の実装例としては以下になります。

=INDIRECT("シート1!A"&COLUMN())

"シート1!A" というのは、

別シートにある元データが定義されている列を指します。

あなたが作成したシート名に応じて変える必要があります。

& をつけると後ろの値(計算した結果も含む)を結合するという意味になります。

COLUMN関数は、

関数を呼び出しているセルの列番号を数値に変えます。

例えば、A列であれば1、B列であれば2となります。

&とCOLUMNの数値を計算されて以下のような形に置き換わります。

=INDIRECT("シート1!A1")

シート1というシートのA列の1行目の値を引っ張ってくると言う意味になります。

COLUMNを呼び出すの位置によって、

元データの参照する番号の開始位置が変わるということを覚えておきましょう。

参照開始位置を調整する

参照する側の今いる列によって参照される場所が変わるといことになりますので、

思っている想定の形にならないケースが出てきます。

開始地点が合うように、元データの位置を直すというのでもいいんですが、

元データの位置が固定されているケースもあるかと思います。

そこでCOLUMNの特性をうまく利用することで解消できる方法があります。

COLUMN() + 1 

のように + 1 という足し算が使えます。

こうすることで元データの開始行番号 + (N) が実現できます。

COLUMN関数は数値を返すものですので、

1 + 1 のような形に置き換わりますので、

数値を足し算した結果を & で文字列結合することができますので、

このような応用ができるというものでした。

すげー。

おわりに

2個の関数を使うことで、

縦列のテーブルを横列のテーブルにすることができました。

最後まで見ていただきヘペトナス!

読者登録・Twitterのフォローもお願いします。