[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『1日から31日までのシートを参照する関数』(あん)
こんばんは。
ご伝授ください。
現在
=IF(ISERROR(VLOOKUP($A$2,'1日データ'!$A:$AC,3,0)),"",(VLOOKUP($A$2,'1日データ'!$A:$AC,3,0)))
この関数で A2の文字列を元に 1日データsheetの3行目を参照するようにしています。
1日データsheetから31日データsheetまであり、'1日データ'の部分を1日 2日 と手入力で変更して作っているのですが、3行目 4行目 と沢山の参照式をつくらないといけなく大変です。
例えば
A3
=IF(ISERROR(VLOOKUP($A$2,'1日データ'!$A:$AC,3,0)),"",(VLOOKUP($A$2,'1日データ'!$A:$AC,3,0)))
A4
=IF(ISERROR(VLOOKUP($A$2,'2日データ'!$A:$AC,3,0)),"",(VLOOKUP($A$2,'2日データ'!$A:$AC,3,0)))
と作ってオートフィルしたら1日 2日 3日 〜31日 とはならないでしょうか?
なにか良い方法はありませんか?
わかりにくくて申し訳ありません。
< 使用 Excel:Excel2007、使用 OS:WindowsVista >
こんばんわ。
A3セル =IF(ISERROR(VLOOKUP($A$2,INDIRECT("'"&ROW(A1)&"日データ'!A:AC"),3,0)),"",VLOOKUP($A$2,INDIRECT("'"&ROW(A1)&"日データ'!A:AC"),3,0))
下にオートフィル
でどうでしょうか?
INDIRECTで記述すると重くなるので、数式を挿入するセル数が多いなら、A:ACとかの列参照では無く、A3:AC1000など範囲を狭めて下さい。
(sy) 2016/05/28(土) 23:39
できました!!!
(A1) と入れる理由がわからないのですが何故ですか?
(あん) 2016/05/28(土) 23:53
ROW関数は引数で与えたセルの行番号を返す関数です。
引数を空欄にすると関数を挿入したセルの行番号を返します。
今回は引数にA1セルを与えているので、1行目の行番号の1を返します。
オートフィルでセル参照はA2、A3となるので、それぞれ2と3を返します。
(sy) 2016/05/28(土) 23:57
> 3行目を参照するようにしています 「3列目」つまりC列ですよね? なのになぜ範囲を A:AC にしてるんでしょうか? A:C でいいのでは? それともC列以外にも参照する列があるんですか?
それとエラー処理は2007だったら IFERROR 関数が使えます。
A B 1 2 3 1日 4 2日 5 3日 ・ ・ 33 31日
↑ のようにA3:A33に「1日〜31日」を入力しておいた方がわかりやすくないですか? オートフィルでできます。
B3 =IFERROR(VLOOKUP($A$2,INDIRECT("'"&A3&"データ'!A:C"),3,0),"")
参考まで。 (笑) 2016/05/28(土) 23:59
質問、回答共消されていたので復元。コメントをするときはコメント欄からどうぞ。 (bi) 2016/05/29(日) 07:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.