- ベストアンサー
Excel関数についての対策方法と解決策
- エクセルの関数についての問題点として、空白の場合も0と同様の判定になってしまうことがあります。
- この問題を解決するためには、IF関数を使用して空白を判定し、空白の場合に別の値を表示するように設定することが必要です。
- 具体的には、IF関数の中でAND関数を使用し、空白かどうかを判定します。空白の場合は別の値を表示するように設定することで、空白を空白のまま表示することができます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
次のような式ではどうでしょう。 =IF(OR(A1="",A1>36),"",IF(AND(A1=0,A1<1),"0",CHOOSE(ROUNDUP(A1/12,0),"左","中","右")))
その他の回答 (4)
- KURUMITO
- ベストアンサー率42% (1835/4283)
No4です。 ごめんなさい。一部変更します。 =IF(OR(A1="",A1>36),"",IF(AND(A1>=0,A1<1),"0",CHOOSE(ROUNDUP(A1/12,0),"左","中","右")))
お礼
^^
- kybo
- ベストアンサー率53% (349/647)
空白であるかどうかは、A1=""で判別できるので、 =IF(AND(A1>=1,A1<=12),"左",IF(AND(A1>=13,A1<=24),"中",IF(AND(A1>=25,A1<=36),"右",IF(AND(A1=0,A1<>""),"0","")))) とでもすればいいです。 あえて関数を使うと後半の「IF(AND(A1=0,A1<>""),"0","")」の部分は IF(EXACT(A1,0),"0","") とできます。 あと、その式はもっと短くできます。 =IF(A1="","",LOOKUP(A1,{0,1,13,25,37;0,"左","中","右",""})) とすれば、条件は満たせる思います。
お礼
回答ありがとうございました! もっと簡単な式に変換できるんですね!さすがにわかりませんでした。 実際に使ってみたのですが、0は表記しなくなり空白になったのですが 今度は結果が数字になっていました。 ちなみにソフトはopenofficeというのを使用しています
- bajutsu
- ベストアンサー率20% (139/693)
そのまんま、「空白だったら空白」の式を足せばいい。 =IF(A1="","",IF(AND(A1>=1,A1<=12),"左",IF(AND(A1>=13,A1<=24),"中",IF(AND(A1>=25,A1<=36),"右",IF(A1=0,"0")))))
お礼
回答ありがとうございました!回答者様の式を拝見して思いました。 全部後に後に付けたしていったのでおそらく表記されなかったのではないかと思っています。 今後のために参考にさせていただきます。 ありがとうございました^^
- radiosmosis
- ベストアンサー率68% (11/16)
参照するセルが空白の場合でも、「左」、「右」、「0」、などと表示するセルにはすでに関数が入力されているわけで、関数の入力されたセルが「空白だったことにする」というのは無理じゃないかと思うのですが...(伝わってますでしょうか...) 私だったら (1)参照するセルが空白の場合、関数のあるセルには何らかの記号を出力させて (例えば: =IF(ISBLANK(A1),"@@", IF(<次の条件>... など) (2)その記号(@@)の入ったセルをconditional formattingを使って非表示にする。 位でしょうか。 これでも関数のあるセルは空白にはなりません。そのようにみえるだけです。 もっと詳しい人がいるかもしれないので、質問閉じないでくださいね。
お礼
回答ありがとうございました!大体わかります。 というよりも先ほどその方法を丁度調べて作成したのですが結局0のまま変わらなかったので、何か式を当てはめる場所が違うのではないか、そうでなければまた何か違う方法があるのか?と思い、質問をさせていただきました あ・・・(2)の方法はしりませんでした。 ご回答感謝します^^
お礼
回答ありがとうございました!関数奥が深いですね・・・ 訓練しておかないとこのような式はさすがにできないと思いました。 この式をさっそく使わせてもらいました 上手く成り立ちました^^ ありがとうございます。変更後の式を使わせていただきました^^