EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数

EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数

EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数 EXCEL
EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数

本ページはプロモーションが含まれています

EXCELでN行ごと/N列ごとにデータを参照したい!
データが少なければ「=A1」「=A4」・・・と入力してもいいけど
大量のデータでは大変ですね。
簡単にデータリンクする方法を紹介します。

N行ごと/N列ごとのデータを参照する

サンプル

参照される元データはこんな感じ。
同じことの繰り返しで12月まで用意しました。

EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数 参照されるシート

参照する側、「まとめ」の表はこちら。
こちらも12月まで作りました。
2つのシートは別々のブックで作成しています
これ、大事なポイントなんです。

EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数 参照するシート

データリンクにはOFFSET関数を使用

N行ごと、N列ごとの参照にはOFFSET関数を使います。
OFFSET関数の書式はこちら。

OFFSET(基準のセル、上下方向の移動量、左右方向の移動量、取得したい行数、取得したい列数)

これに加えてROW関数、COLUMN関数も。

ROW行番号を返します
COLUMN列番号を返します

使い方はかんたん。
例えば A3のセルに
=ROW()
と入力すると「3」が表示されます。

データ参照をやってみる

EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数 入力内容

E4のセルに入力したのは

=OFFSET(元データ.xlsx!$A$5,0,(COLUMN()-5)*4,1,1)

基準セル元データ.xlsx!$A$5
上下の移動量0
左右の移動量(COLUMN()-5)*4
取得したい行数1
取得したい列数1

基準セルの「元データ.xlsx!$A$5」
A5のセルがデータリンクしたい1つ目のデータ。
これは必ず絶対参照で指定します。

EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数 基準セル

上下の移動量は「0」。
説明では列方向のデータ参照ですので
上下には移動はありません。

左右の移動量「(COLUMN()-5)*4」
ここがポイントです。
E列に入力しているため、
COLUMN()で返される列番号は5。
5 – 5 = 0
0 * 4 = 0
となってE5のセルでの左右の移動量は0になります。

このセルを右方向にオートフィルでコピーすると、
E6のセルではCOLUMN()で返される列番号は6。
6 – 5 = 1
1 * 4 = 4
となって左右の移動量は4。

基準セルから4つ右方向に移動したセルが参照されます。

EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数 列番号

つまりこういうことです。
(COLUMN()-参照するシートの列番号)*参照されるシートで飛ばしたい列数

対象にしているのが1つのセルだけなので
取得したい行数、列数は1。

あとはオートフィルで右方向にコピーすればOKです♪

Excelってどうやって勉強するの?

OFFSET関数の弱点はここ

サンプルデータの紹介で
2つのシートは別々のブックで作成しています
と書きました。
その理由はOFFSET関数の弱点を紹介したかったから。
参照される元データのブックを開いていないとエラーになります。

EXCEL:N行ごと/N列ごとのデータを参照する方法 OFFSET関数 参照されるブックを閉じると

これの対処方法は参照される元データの値を
参照するまとめのブックにリンクさせたシートを作る事です。

EXCELのバージョンアップで対応してくれるとうれしいんですけどね。

まとめ

EXCELでN行ごと/N列ごとのデータを参照する方法を紹介しました。
N列ごとの参照方法で紹介しました。
N行ごとの参照の場合はこちらです。
=OFFSET(基準セル,(ROW()-参照するシートの行番号)*参照されるシートで飛ばしたい列数,1,1)

Excelの魔術師へ! さいしょの一歩

ほかにもいろいろ書いてます
↓ 下記からご覧ください
サイトマップ
ブックマークして頂けると嬉しいです
よろしくお願いいたします

コメント

タイトルとURLをコピーしました