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

Excelで、AのセルとBのセルで同じ日付が入っているのにIF文で比較すると、
一致しない。

 A(祝日一覧)     B(カレンダー)    C
2024/5/3(金)    2024/5/3(金)     1

セル書式で文字列にしたり、文字列で張り付けたり、逆にユーザー定義 YY/mm/dd(aaa)にしても
一致しない。

普通にAをコピーしてBに入れれば当然一致するが、
Aは祝日一覧の表で、Bはカレンダー。カレンダーの中で、
祝日一覧に一致したら、C列に1を記入したいです。

どうしたら一致できるようにできるでしょうか。

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (4件)

どういう条件式にしているのか書いていないので


原因はわかりませんが・・・

こちらのページを参考にしてみては?
【Excel】条件式で日付を正しく判定
https://it-yobi.com/trick-no10/
    • good
    • 0
この回答へのお礼

ありがとうございます。
IF(A=B,"◎","NG")と書いておりました。
参照先、とっても参考になりました。ありがとうございます。

お礼日時:2024/05/08 22:49

日付の値は年月日だけでなく時分秒も持っている


そこまで同じにしているのかって話
コピペで一致するならしてないんじゃろ、と
    • good
    • 0
この回答へのお礼

時分秒も持っているのですね。ありがとうございます。

お礼日時:2024/05/08 22:48

こんばんは



>どうしたら一致できるようにできるでしょうか。
単純に入力値の形式を同じにしておけば良い話のはずなのですが・・・
(表示形式ではありません)
そのあたりが理解できていらっしゃらないということのように思われます。

いろいろなケースを想定すると判定式が長くなるばかりなので、ほどほどにしてありますが、以下で大抵のケースは判定可能であろうと思います。

A1セルとB1セルの値を比較するものとして、判定したいセルに以下の式を入力します。(結果は、TRUE/FALSEになります)
=IFERROR(INT(IF(ISNUMBER(A1),A1,DATEVALUE(LEFT(A1,AGGREGATE(14,6,ROW(OFFSET($C$1,,,LEN(A1)))/ISNUMBER(MID(A1,ROW(OFFSET($C$1,,,LEN(A1))),1)*1),1)))))=INT(IF(ISNUMBER(B1),B1,DATEVALUE(LEFT(B1,AGGREGATE(14,6,ROW(OFFSET($C$1,,,LEN(B1)))/ISNUMBER(MID(B1,ROW(OFFSET($C$1,,,LEN(B1))),1)*1),1))))),FALSE)

※ 入力値が揃っていれば、=A1=B1 で済むはずの判定ですけれど・・
    • good
    • 0

表示形式を「標準」にすると、最近の日付なら4万ちょいの値になるはずです。

うっかり時刻が含まれてると小数部分として見えます。標準にしても数値にならないのは文字列なので、比較には使えません。小数部分を含むものや文字列のものにマークをつけておいて、表示形式を日付にしてから入力しなおしです。

曜日を入力したら文字列ですから、年月日だけ入力して曜日は表示形式で見せるようにしましょう。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A