8月のカレンダーを作成しました。 8/13、8/14、8/15の文字を条件付き書式を用いて赤色に設定したいです。 A列は日付で、書式設定は m"月"d"日" です。 下記数式を使うと、条件付き書式に配列式は使えませんというエラーメッセージが出ました。 =ISNA(MATCH(TEXT(A1,"m/d"),{"8/13","8/14","8/15"},0))=FALSE 別シートに8/13、8/14、8/15のテーブルを作れば、普通にMATCH関数を使って簡単に解決しますが、今回、向学のために別シート・作業列を使わない方法にトライしてみました。 そこで、 =IF(ISERROR(FIND(TEXT(A1,"m/d"),"8/13,8/14,8/15"))=FALSE を使うと、8/1の文字列も赤色になります。 これはFIND関数はMATCH関数のように完全一致を設定する機能が無いからだと思います。 でも、 =IF(ISERROR(FIND(TEXT(A1,"mm/dd"),"08/13,08/14,08/15"))=FALSE にすると、何とか出来たようです。8月以外の月で任意の休日を設定した場合、 この方式でうまくいくかちょっと不安ですが・・・。全ての日付に対して検証していません。 上記の方法でも悪くはないと思いますが、向学のために、他の方法で何かありましたら、ご提言下さい。
引用:=IF(ISERROR(FIND(TEXT(A1,"m/d"),"8/13,8/14,8/15"))=FALSE を使うと、8/1の文字列も赤色になります。
あと、CHOOSE関数を使って =MATCH(TEXT(A1,"m/d"),CHOOSE(ROW($1:$50),"8/13","8/14","8/15"),0) $50→ 50個の日付まで対応。
shimoichimabu さんの引用:、 =IF(ISERROR(FIND(TEXT(A1,"mm/dd"),"08/13,08/14,08/15"))=FALSE
最初の式 OR が不要でした。 =OR(FIND(TEXT(A1,",m/d,"),",8/13,8/14,8/15,")) ↓ これで十分 =FIND(TEXT(A1,",m/d,"),",8/13,8/14,8/15,")
んなっとさん、MMYSさん回答ありがとうございます。 確かに、ORがなくても問題なかったです。 CHOOSE関数をMATCH関数の中に使うことは想像していませんでした。 こうすれば、条件付き書式で使うことができました。 >=FALSE と記述して True/Falseを比較するのは無駄です。 MMYSさん、大変勉強になりました。 このたび、色々と貴重なご提言頂き、ありがとうございました。
利用者の皆様にお知らせです。
マイクロソフト オフィス スペシャリスト(MOS)
ビジネス統計スペシャリスト
IC3(アイシースリー)
VBAエキスパート
アドビ認定プロフェッショナル
Microsoft認定資格
App Development with Swift
IT Specialist
Cisco Certified Support Technician(CCST)
外交官から学ぶ グローバルリテラシー
令和のマナー検定