• ベストアンサー

エクセルのVLOOKUP関数について

エクセルの関数で悩んでいます。 やろうとしていることは、たとえばA1のセルに日付(年月日)を入力すれば、入力した月だけを判断してその月の掃除当番の名前がセルB1に表示されるようにしたいのです。 1月から12月までの掃除当番は決まってますので、事前に別のセルに表を作成(たとえばH1~H12には1月、2月・・・・12月と入力し、I1~I12にはそれぞれの掃除当番名を入力して)し、VLOOKUP関数で呼び出せないかなぁと思っていたのですが、セルA1の日付(たとえば2006/8/27)から8月と判断する方法がわからないのです。 どなたかご存知でしたらご教授頂けないでしょうか。 他の関数を使用してする方法などでも結構です。 宜しくお願いいたします。

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

  • ベストアンサー
  • naop73
  • ベストアンサー率100% (2/2)
回答No.1

まず年月日を文字列で入力します。 例)A1セルに2006/8/1 次にA1セルを対象にDATEVALUE関数を使います。 例)B1セルに=DATEVALUE(A1) 次にB1セルを対象にMONTH関数を使います。 例)C1セルに=MONTH(B1) 以上で月だけが取り出せます。 H1からH12までは表示形式で#"月"にしておいて、数字のみ入力で。 後、BとCの列は非表示にしておけばかっこ悪くないでしょう。

ryunohitomi
質問者

お礼

お返事ありがとうございました。 後ほどやってみます。

その他の回答 (3)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.4

データの持ち方にもよりますが、、、 A1のデータが日付型として =year(A1)で年、=month(A1)で月、=day(A1)で日が取り出せます。 これは数値型ですので比較したいデータである「1月~12月」が文字列型の場合は =Text(A1,"m月") これをVLOOKUPの比較に使用すると =VLOOKUP(TEXT(A1,"m月"),$H$1:$I$12,2,0)

ryunohitomi
質問者

お礼

お返事ありがとうございました。 後ほどやってみます。

  • takuranke
  • ベストアンサー率31% (3923/12455)
回答No.3

=VLOOKUP(MONTH(A1),F2:G5,2) でもいけると思う。 A列に年月日(2006/8/25)を入れます これではF列ですがそこに整数を入れます1~12、 その隣の列(これではG列)に当番名を入れます。 最後の2はF列から数えて2個目と云う意味です 省略されていますが本当は =VLOOKUP(MONTH(A1),F2:G5,2,FALSE)となります FALSEは検索値に一致する値しか検索しません。 これですと自分だけがわかればいいみたいな簡単なものです(見た目かっこ悪い、月とか表示されません)

ryunohitomi
質問者

お礼

お返事ありがとうございました。 後ほどやってみます。

  • poohron
  • ベストアンサー率59% (574/971)
回答No.2

H1~H12の月は1月、2月…12月ではなく数値(1,2,…12)で入力しておきます。 A1の日付の入力は、8/27のような形式でかまいません。 (ほかにも2006/08/27とかエクセルが日付として認識できる形式ならOK) VLOOKUP関数の使用であれば、 =VLOOKUP(MONTH(B1),H1:I12,2) で掃除当番名が表示されます。 H1~H12を1月、2月…と表示したいのなら、 表示形式をユーザー定義→#月 で設定すればOK。

ryunohitomi
質問者

お礼

お返事ありがとうございました。 後ほどやってみます。

関連するQ&A