今回は、エクセルで横のデータを縦に参照(違うシートも)方法について説明します。
図のように、合計が表示されている7行目をI列のように縦に表示したい時、また逆に縦に表示されたものを横にしたい時、それぞれ別シートの情報を参照したい時について説明していきます。
エクセルで横のデータを縦に参照する方法
まずは、エクセルで横のデータを縦に参照する方法です。
下図のような表を例として使用します。
この表の7行目の合計をI列に表示してみます。
今回は、OFFSET関数とROW関数を使用します。
Aの合計(今回の場合はC7セル)をI3セルに表示させてみます。
このときは、I3セルに「=OFFSET($C$7,0,ROW(A1)-1)」と入力してください。
これでC7セルの値がI3セルに表示されるようになりました。
ほかのI列にもデータを表示させたいので、I3セル右下の「■」をドラッグし、I6セルまで引っ張ります。
これで7行目のデータがI列に表示されるようになりました。
ここから関数について説明します。
今回使用したOFFSET関数は、
=OFFSET(参照元(起点),X方向にずらしたい量,Y方向にずらしたい量)
という形式になっています。
I3セルに表示させるだけであれば、参照元(起点)はAの合計が表示されたセルなので、「C7」ですが、この後ほかの行にも同じ式を展開したいので、ここのセルを固定させるため「$C$7」(“$”でセルを固定できます)と記載します。
次にX方向にずらしたい量については今回はX方向にはずらす必要がないので「0」となります。
Y方向にずらした医療についてはI3列だけなら「0」ですが、I4セル以下の行にも式を展開したいので、「0,1,2,3」としたいです。こうしたい時にROW関数を使います。ROW関数は行の番号を取得できるので、ROW(A1)とすると、「1」が入力されます。今回は「0」にしたいので、「ROW(A1)-1」としています。
このA1はセルのコピーをすると行ごとにA2,A3…とずれていくので、それぞれが「0,1,2,3」と置き換わり、参照できるようになっています。
別シートへの対応
応用として、別のシートに対して同じことをやってみます。
まず、図のようにシートを二つ用意し、それぞれに以下のようにデータを作成します。
ここから先は、参照する内容が異なるだけでやり方はほとんど同じです。
Sheet2のほうのC2セルに、「=OFFSET(Sheet1!$C$7,0,ROW(A1)-1)」と入力します。
同じシートで実施した場合との違いは、「$C$7」となっていた部分が「Sheet1!$C$7」となっているところだとわかります。頭に「Sheet1!」とつけることで、参照元がSheet1のセルであることを示しています。
続けて、先ほど同様ほかのセルにも式を展開するため、C2セルの右下の「■」をドラッグし、下にずらします。
これで、C列に別シートの数字が移されました。
エクセルで縦のデータを横に参照する方法
次に、縦に並んだデータを横に参照してみます。
まずは以下のようなデータを準備します。
このI3~L3セルにG列の合計を表示します。
まず、I3セルに「=OFFSET($G$3,COLUMN(A1)-1,0)」と入力します。
OFFSET関数については先ほど使用したのと同じです。今回は縦方向ではなく、横方向に動かいしたいので、Y方向は「0」、X方向は先ほどのROW関数と似たCOLUMN関数を使用します。COLUMN関数は列番号を返す関数なので、COLUMN(A1)で「1」を返します。今回は0から始めたいので-1しています。
先ほど同様、I3セルの式をほかのセルにも展開したいので、I3セルの右下の「■」をドラッグし、右にスライドさせます。
これでほかのセルも参照出来ました。
なお別シートの場合も先ほどと同様に参照したいセルに「Shhe1!」とつけることで、参照することができます。
【まとめ】エクセルで横のデータを縦に参照(違うシートも)方法
今回はエクセルで横のデータを縦に参照(違うシートも)方法について説明しました。
OFFSET関数、ROW関数、COLUMN関数の組み合わせで縦、横の変換はできますので、ぜひ活用してください。