• ベストアンサー

Excel2003 IF関数

シート1のA列に値を入力して行き、終了したら同じようにシート2のA列に値を入力して行きます。 この時、シート1に入力した値とシート2に入力した値は同じでなければなりません。 シート2は再チェック用なので、シート1と値が異なる入力をした場合、 値を入力するセル(A列)の隣のセル(B列)に、 IF関数、真の場合『OK』・偽の場合『入力エラー』と反映されるようにしております。 =IF(B1=seat!B1,"OK","入力エラー") 『OK』の場合は表示させる必要は無いので、条件書式を使用し、 フォント色を白くして、表示させないようにしております。 ただ、シート1を入力してからシート2に入力を始めるため、 シート2のB列には既にに『入力エラー』の表示がでてしまっています。 ※値を入力しないセルもあるのでその場合は『OK』が表示されますが、 条件書式によりフォント色を白くしておりますので、表示されません。 シート2には何も入力をしていないので、『入力エラー』と表示されるのは当然なのですが、 シート2に値を入力してから、シート1,2で異なる値の場合だけ『入力エラー』と表示されるのが理想です。 IF関数はこのような場合適していないのでしょうか? 何か良い方法がございましたらご教示頂けますと幸いです。 宜しくお願い致します。

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

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.5

追記。 ANo.1のように「入力したセル自体の文字色を変える」だと「半角スペースのみや全角スペースのみを入力した時や、未入力の時など、目に見えない文字や、表示させるべき文字が無い場合」にエラーだと気付きません。 「可読な文字が無い」のですから、文字色を変えても無意味です。赤い文字を指定して、全角スペースを3つ「   」って書いても、そこには「白い空白が3つあるだけ」です。赤くはなりません。 ANo.2のように「B1=""」で""を返してしまうと「入力し忘れてもOK」になってしまうので、やはり、問題が出ます。 「入力前は何も出てない方が恰好が良い」ですが「恰好を良くすると実用上問題が出る」のなら、それは「避けるべき」です。 理想は「恰好が良く、実用上も問題が無い」という形。例えば「判定ボタンが置いてあって、入力前は何も表示されておらず、判定ボタンを押したら、全部のセルの判定が行われ、ミスがある部分だけ表示が出る」とか。こういうのを「恰好が良い」と言います。

sakuichi
質問者

お礼

ご回答拝読致しました。二度もアドバイスを頂き深謝致します。 この度は色々と勉強させて頂き、自分の浅はかな考えに面映い限りです。 業務上、Excelを使用する機会が多いので、 今後もこちらで質問をさせて頂く機会が多々あることと存じます。 その時は是非アドバイス頂ければ幸いです。 この度は有難うございました。

その他の回答 (4)

  • ishiwaru
  • ベストアンサー率19% (70/356)
回答No.4

=IF(B1=seat!B1,"","入力エラー")

sakuichi
質問者

お礼

ご回答拝読致しました。大変参考になりました。 貴重なお時間を割いてのご回答、誠に感謝致しております。 また機会がありましたら宜しくお願い致します。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.3

>シート2に値を入力してから、シート1,2で異なる値の場合だけ『入力エラー』と表示されるのが理想です。 それは「素人がハマる罠」です。 それを実装すると「シート2が未入力なら常にOKになる」と言う事を意味します。 言い換えれば「シート1に値があって、シート2にも値を入れないといけないのに、シート2に入力し忘れてもOKになってしまう」と言う意味です。 つまり、ご質問の処理を実装すると「シート2に入力し忘れたセルがあっても気付かない」と言う不具合が発生する事になります。 「シート2に値を打ち込み忘れている」のも「入力エラー」なのですから「シート2がまったく未入力」なら「全部が入力エラーになるべき」です。 つまり「現状のままが、ベストな状態」です。 「それじゃ嫌だ」と言うなら =IF(B1=Sheet1!B1,"OK",IF(ISBLANK(B1),"未入力","入力エラー")) と言う式にしましょう。 あと =IF(B1=Sheet1!B1,"",IF(ISBLANK(B1),"未入力","入力エラー")) と言う式にすれば >『OK』の場合は表示させる必要は無いので、条件書式を使用し、 >フォント色を白くして、表示させないようにしております。 などと言う面倒な事は不要です。 上記の式は「OKなら空文字列になる」ので、条件書式など無くても「OKなら何も表示されない」です。 条件付き書式を多用すると、ファイルが肥大化しますし、入力後の反応が遅くなります。 「条件付き書式で白くする」などという無駄な事はやめて「何も表示させない時は""を用いる」ようにしましょう。

sakuichi
質問者

お礼

ご回答拝読致しました。大変参考になりました。 貴重なお時間を割いてのご回答、誠に感謝致しております。 また機会がありましたら宜しくお願い致します。

  • suekun
  • ベストアンサー率25% (369/1454)
回答No.2

質問に沿って回答すると、 =IF(B1="","",IF(B1=seat!B1,"OK","入力エラー")) IFをネストする事で、一回目の判断基準は、B1が空白かどうか? 空白なら空白のまま、空白でないなら、OKもしくは入力エラーを 返すようにする事ができます。

sakuichi
質問者

お礼

ご回答拝読致しました。大変参考になりました。 貴重なお時間を割いてのご回答、誠に感謝致しております。 また機会がありましたら宜しくお願い致します。

回答No.1

私ならシート2のA列そのものに条件書式を設定します。シート1と 一致していなければ文字色が赤くなるとかね。

sakuichi
質問者

お礼

お礼が遅くなり大変申し訳ございませんでした。 ご回答拝読致しました。大変参考になりました。 貴重なお時間を割いてのご回答、誠に感謝致しております。 また機会がありましたら宜しくお願い致します。

関連するQ&A

専門家に質問してみよう