- ベストアンサー
エクセル関数
=IF(COUNTIF($C$40:$C$55,$B3),"休館日",VLOOKUP(WEEKDAY(B3),{1,"";2,"";3,"";4,"休館日";5,"";6,"";7,""},2,0)) 上記の関数を入力するとエクセル2003では、#N/A とメッセージが出てしまうのですが、 また、質問しました 年間の指定した日と毎週水曜日の両方を休館日にするには、上記の関数を 入力したのでは、表示されません。 ご回答お待ちしております。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
水曜日と指定されている日付の場合のみ「休館日」と表示させるだけでしたら、VLOOKUP関数など使わずに、次の様にされると良いと思います。 =IF(ISNUMBER(1/DAY($B3)),IF(OR(WEEKDAY($B3)=4,COUNTIF($C$40:$C$55,$B3)),"休館日",""),"") 又、水曜日以外の各曜日に関しても、「休館日」とは別の、何らかの表示を行う場合には、折角、WEEKDAY関数を利用しているのですから、次の様にされると良いと思います。 =IF(ISNUMBER(1/DAY($B3)),IF(COUNTIF($C$40:$C$55,$B3),"休館日",INDEX({"「日曜日の場合の予定」","「月曜日の場合の予定」","「火曜日の場合の予定」","休館日","「木曜日の場合の予定」","「金曜日の場合の予定」","「土曜日の場合の予定」"},WEEKDAY($B3))),"")
その他の回答 (2)
- Cupper-2
- ベストアンサー率29% (1342/4565)
日付はシリアル値で入力され、セルの書式で表示形式を日付形式に指定して表示されているのですよね。 文字列ってことはありませんよね。 試しに日付を入力しているセルを全て選択し、セルの書式で表示形式を「標準」に変えてみてください。 この場合、2013年3月18日なら41716に表示が変わればシリアル値で入力されているということになります。 5桁の数値に変わらなければ、その日付は文字列で入力されているということになります。
お礼
ご助言ありがとうございます。 参考になりました。
- bunjii
- ベストアンサー率43% (3589/8249)
>年間の指定した日と毎週水曜日の両方を休館日にするには、上記の関数を入力したのでは、表示されません。 C40~C55セルに年間の指定休刊日が入力されているのですよね? 関数式としては問題ないはずです。 B3セルの値が文字列の場合はエラーになるかも知れません。 当方にはExcel 2003が無いのでExcel 2002で検証した結果ではB3セルに日付と認識できない文字列を入力したときにエラー(#VALUE!)になります。 C40~C55セルにはどのような値が設定されていてもエラーにはなりませんでした。
お礼
エクセルのバージョンによって、やり方がいろいろあるのですね。 参考になりました。 ありがとうございます。
お礼
無事、表を作成することができました。 また、アレンジした別の表の作成方法もアドバイスしていただき、ありがとうございました。 今後、質問することがあるかと思いますが、よろしくお願いします。