• ベストアンサー

【Excel】表示値と実際の値が異なるものにIF関数を使いたい。

表示されている数値と、実際に打ち込まれている数値が異なる場合でも使えるIF関数、もしくは方法はないでしょうか。 **例** ・表示されている数値    → 98:00:00 ・実際に打ち込まれてる数値→ 1900/1/4 2:00:00 ⇒打ち込まれている数値が「98」のものと一致させたい。 説明が下手で申し訳ありません。 言葉足らずでしたら補足もいたしますのでお詳しい方、ご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.1

少し勘違いしているようなので IF関数で計算式を判断する場合には 表示形式は一切関係なく セルに入っているシリアル値で判断されます。(日付の場合) 今回のケースで  1900/1/4 2:00:00 と入力された値を98 と一致させるには この日付がA1に入っているとして A1の値を VALUE(TEXT(A1,"[h].mm")) のような形で処理します。 IF(VALUE(TEXT(A1,"[h].mm"))=98,"○","x")

Aim0420
質問者

お礼

ご回答ありがとうございます。 先ほどの質問でもご対応ありがとうございました。 おっしゃる通りの関数でやってみたところ、無事できました!! なるほど、表示形式は一切関係なくシリアル値と言うのがあるのですね。 わざわざ解説までしていただき本当に感謝です。

その他の回答 (4)

回答No.5

追記 表示書式が「G/標準」になっているか「ユーザー定義」になっている場合だけ「真」にしたいなら =IF(AND(TEXT(A2,"[h]")="98",CELL("format",A2)="G"),"真","偽") と書けば良い。 これで、表示形式が「通貨」や「文字列」や「日付」や「時刻」の物は「偽」になり、排除出来る。 但し、ユーザー定義で「###,###」とかって感じで指定されてたら「結果的にカンマ付き数字になるけど、ユーザー定義に変わりは無い」ので駄目だけど。

回答No.4

=IF(TEXT(A1,"[h]")="98","真","偽") って事ではなくて? 但し、この場合、表示されている値が 98:00:00 でも 4 でも 1900/1/4 2:00:00 でも「真」になっちゃうけども。 「表示形式も98:00:00じゃないと駄目」と言うのは、残念ながら不可能。 表示形式の判定は =CELL("format",A1) と言う式で可能だけど、表示形式が 4 の時も 98:00:00 の時も、どっちも結果が「G」になる(「ユーザー定義の表示書式が設定されている場合は、CELL関数は"G"を返す」と言う仕様になっている)ので、判定は出来ない。

回答No.3

A1セルに時間が入力されているとして =TEXT(A1,"[h]")*1 とすると98の数値が戻ります。

Aim0420
質問者

お礼

ご回答ありがとうございます。 なるほど!「98」を時間に変えてしまうのですね! 変換後無事にIF関数で判別できました★

回答No.2

要するに、日付シリアル値が入力されてて表示形式が[h]:mm:ssなも のがあって、時間で条件式をなんとかしたいと。 たとえば=if(text(A1,"[h]")="98",..とか、=if(int(A1*24)=98,.. あたりが判りやすいんじゃないかと思います。

Aim0420
質問者

お礼

ご回答ありがとうございます。 はい!要するにそういうことなんです。 説明が下手くそで本当にすみません(汗 教えていただいた関数で無事できました*^^*

関連するQ&A

専門家に質問してみよう