こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【エクセル関数】参照するセルを一定数ずつ増やす

関数で苦戦しています。

下記のようなIF関数を使用しています。
=IF(A1="","",A1)
参照するセルのA1の部分がA3,A5,A7…となるように
行数を一定数ずつ増やしたいのですが、やり方がわかりません。
どなたか教えてください。
説明が下手でごめんなさい。

投稿日時 - 2007-06-17 01:12:24

QNo.3091217

すぐに回答ほしいです

質問者が選んだベストアンサー

察しは付きますが、やはりもう少し詳しく説明が欲しいところです。

 =IF(OFFSET($A$1,(ROW(A1)-1)*2,0,1,1)="","",OFFSET($A$1,(ROW(A1)-1)*2,0,1,1))
または
 =IF(INDIRECT("A"&(ROW(A1))*2-1)="","",INDIRECT("A"&(ROW(A1))*2-1))
こんなでどうでしょう。


ROW関数は指定したセル(省略した場合、記述されているセル)の行番号を返す関数
(ROW関数は、ROW() と括弧の中を省略してもOKです)
OFFSET関数は基準のセルから指定しただけずらしたセルを参照する関数
INDIRECT関数は文字列で示されたセルを参照する関数
です。
IF関数は説明の必要はありませんよね。

ちなみに列番号を返すには COLUMN関数を使います。

投稿日時 - 2007-06-17 08:13:17

お礼

できました!
説明が不十分にもかかわらず、
的確なアドバイス有難うございました。

OFFSETとINDIRECT勉強してみます。
また、分からなくなったら教えてください。

投稿日時 - 2007-06-17 11:52:50

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

=IF(A1="","",OFFSET($A$1,ROW(A1)*2-1,0,1,1))
で出来ませんか?

3行ずつずらす場合は
=IF(A1="","",OFFSET($A$1,ROW(A1)*3-2,0,1,1))

投稿日時 - 2007-06-17 05:13:22

お礼

OFFSET関数っていうんですね。
勉強してみます!
有難うございました。

投稿日時 - 2007-06-17 11:48:53

仰るとおり「説明が下手」です。

意味不明な説明になっている(特に「A1の部分がA3,A5,A7…となるように」の部分)ので、文章だけでなく、レイアウト例を示してください。

投稿日時 - 2007-06-17 03:11:36

あなたにオススメの質問