プロが教える店舗&オフィスのセキュリティ対策術

宜しくお願い致します。

やりたい事
Excelで年代ごとに縦軸は月、横軸は日で出来た表があります。
生年月日を入力すると、年代ごとの表から月と日の一覧からデータを
拾い出したいのです。

年代ごとにと言うところからよくわかりません。その他はOffcet関数などを使うと出来そうでしょうか?
どうぞご教授下さい。
宜しくお願い致します。

「Excel関数を使って表を検索するには」の質問画像

A 回答 (6件)

4個のセルを選んだ状態で



=OFFSET(INDEX(A:A,MATCH(N2,A:A,0)),MATCH(O2,OFFSET(INDEX(A:A,MATCH(N2,A:A,0)),1,0,99,1),0),MATCH(P2,OFFSET(INDEX(A:A,MATCH(N2,A:A,0)),1,1,1,99),0),2,2)

と記入し、コントロールキーとシフトキーを押しながらEnterで入力する。


#参考
月や日付の値が「1から始まっていない」状況を想定して、わざとメンドクサイ検索の式にしています
左の表が必ず1月や1日から始まっているのであれば、わざわざMATCH関数で月や日を検索せず、「INDEX(A:A,MATCH(N2,A:A,0))」セルを基準位置として月や日付の値によってセル位置を特定し値を参照してくるので十分です。




#参考
計算の段取りを把握すれば、OFFSET関数やINDEX関数を使い、配列数式にしないで1セルずつ値を参照してくることも簡単にできます。
    • good
    • 0
この回答へのお礼

早々のお返事ありがとうございました。
大変参考になりました。
配列と言うのがいまいち難しいですね・・・
今後勉強していきます。
ありがとうございました。

お礼日時:2012/09/03 02:14

 御質問文の添付画像中の表では、「指定する年月日入力欄」や結果の表示欄の位置が悪いため、今仮に、これらの位置を少々移動させて、C2セルに指定する西暦年を、D2セルに指定する月を、E2セルに指定する日をそれぞれ入力し、G1~H2の範囲に拾い出した結果を表示させるものとします。


 又、元の表の月や日の値には途中の抜け(例えば11日の直ぐ右に入力されている日付が13日になっている等)等は存在しないものとし、必ず、1から始まっているものとします。

 まず、G1セルに次の関数を入力して下さい。

=IF(AND(ISNUMBER(($C$2&"/"&$D$2&"/"&$E$2)+0),$C$2>12,COUNTIF($A:$A,$C$2)),INDEX($B:$BK,MATCH($C$2,$A:$A,0)+2+($D$2-1)*2+MOD(ROWS($G$1:G1)-1,2),1+($E$2-1)*2+MOD(COLUMNS($G$1:G1)-1,2))&"","")

 そして、G1セルをコピーして、G1~H2の範囲に貼り付けて下さい。

 これで、G1~H2の範囲に拾い出した結果が自動的に表示されます。
  ([Control+Shift+Enter]の操作は不要)
「Excel関数を使って表を検索するには」の回答画像2
    • good
    • 0
この回答へのお礼

早々のお返事ありがとうございました。
またサンプルも大変分かり易かったです。
ありがとうございました。

お礼日時:2012/09/03 02:12

各年の表は1月から始まって12月まで、1日から始まって月末までとなっているのでしたら次の式をN6セルに入力してO6セルまでドラッグコピーしたのちに下に1行ドラッグコピーします。



=INDEX($A:$Y,MATCH($N$2,$A:$A,0)+$O$2*2+ROW(A1)-1,$P$2*2+COLUMN(A1)-1)
    • good
    • 0
この回答へのお礼

早々のお返事ありがとうございました。
また違う方法もご教授頂き感謝いたします。

お礼日時:2012/09/03 02:11

N6: =OFFSET($A$1,MATCH($N$2,$A:$A,0)+$O$2*2-1+ROW(A1)-1,$P$2*2+CO

LUMN(A1)-2)
    • good
    • 0

[No.4]を若干変更(元のままでも構わないけど)



N6: =OFFSET($A$1,MATCH($N$2,$A:$A,0)+$O$2*2+ROW(A1)-2,$P$2*2+COLUMN(A1)-2)
    • good
    • 0
この回答へのお礼

ありがとうございました。
自分では思いつきませんでした。
また機会がございましたらよろしくお願い致します。

お礼日時:2012/09/03 02:10

回答No3です。

OFFSET関数を使う場合にはN6セルには次の式を入力すればよいでしょう。

=OFFSET(INDEX($A:$A,MATCH($N$2,$A:$A,0)),$O$2*2+ROW(A1)-1,$P$2*2+COLUMN(A1)-2)
    • good
    • 0
この回答へのお礼

ありがとうございました。
大変勉強になりました。

お礼日時:2012/09/03 02:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!