プロが教えるわが家の防犯対策術!

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

A 回答 (4件)

まず年月日を文字列で入力します。


例)A1セルに2006/8/1
次にA1セルを対象にDATEVALUE関数を使います。
例)B1セルに=DATEVALUE(A1)
次にB1セルを対象にMONTH関数を使います。
例)C1セルに=MONTH(B1)

以上で月だけが取り出せます。
H1からH12までは表示形式で#"月"にしておいて、数字のみ入力で。
後、BとCの列は非表示にしておけばかっこ悪くないでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/27 16:20

データの持ち方にもよりますが、、、


A1のデータが日付型として
=year(A1)で年、=month(A1)で月、=day(A1)で日が取り出せます。

これは数値型ですので比較したいデータである「1月~12月」が文字列型の場合は
=Text(A1,"m月")

これをVLOOKUPの比較に使用すると
=VLOOKUP(TEXT(A1,"m月"),$H$1:$I$12,2,0)
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/08/27 16:22

=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は検索値に一致する値しか検索しません。

これですと自分だけがわかればいいみたいな簡単なものです(見た目かっこ悪い、月とか表示されません)
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/27 16:21

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。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/27 16:21

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