- ベストアンサー
エクセルのVLOOKUP関数について
エクセルの関数で悩んでいます。 やろうとしていることは、たとえばA1のセルに日付(年月日)を入力すれば、入力した月だけを判断してその月の掃除当番の名前がセルB1に表示されるようにしたいのです。 1月から12月までの掃除当番は決まってますので、事前に別のセルに表を作成(たとえばH1~H12には1月、2月・・・・12月と入力し、I1~I12にはそれぞれの掃除当番名を入力して)し、VLOOKUP関数で呼び出せないかなぁと思っていたのですが、セルA1の日付(たとえば2006/8/27)から8月と判断する方法がわからないのです。 どなたかご存知でしたらご教授頂けないでしょうか。 他の関数を使用してする方法などでも結構です。 宜しくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず年月日を文字列で入力します。 例)A1セルに2006/8/1 次にA1セルを対象にDATEVALUE関数を使います。 例)B1セルに=DATEVALUE(A1) 次にB1セルを対象にMONTH関数を使います。 例)C1セルに=MONTH(B1) 以上で月だけが取り出せます。 H1からH12までは表示形式で#"月"にしておいて、数字のみ入力で。 後、BとCの列は非表示にしておけばかっこ悪くないでしょう。
その他の回答 (3)
- papayuka
- ベストアンサー率45% (1388/3066)
データの持ち方にもよりますが、、、 A1のデータが日付型として =year(A1)で年、=month(A1)で月、=day(A1)で日が取り出せます。 これは数値型ですので比較したいデータである「1月~12月」が文字列型の場合は =Text(A1,"m月") これをVLOOKUPの比較に使用すると =VLOOKUP(TEXT(A1,"m月"),$H$1:$I$12,2,0)
お礼
お返事ありがとうございました。 後ほどやってみます。
- takuranke
- ベストアンサー率31% (3923/12455)
=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は検索値に一致する値しか検索しません。 これですと自分だけがわかればいいみたいな簡単なものです(見た目かっこ悪い、月とか表示されません)
お礼
お返事ありがとうございました。 後ほどやってみます。
- poohron
- ベストアンサー率59% (574/971)
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。
お礼
お返事ありがとうございました。 後ほどやってみます。
お礼
お返事ありがとうございました。 後ほどやってみます。