• ベストアンサー

論理式がうまく作れません(ノω=;)

論理式がうまく作れません(ノω=;) 条件(1) B列にある値を D38 と比較してTRUEなら N列+P38 条件(2) B列にある値を D39 と比較してTRUEなら N列+P39 条件(3) 条件(1)・(2)どちらにも該当しなければ N列+P35 以上をIF関数で作成してみました。 =IF(COUNTBLANK(B5)=1,"",IF($D$38=B5,$P$38+N5,IF($D$39=B5,$P$39+N5,$P$35+N5))) どうしてでしょうか?『0』になってしまいます。 何かいい方法があれば教えてください。

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

  • ベストアンサー
回答No.6

実際計算式をコピーさせてもらい作ってみましたけど「0」にはならずちゃんと返ってきてますので、どこがおかしいのかは実際データを見るしかないようですね 似たようなデータを作成してアップしていただくと不具合を起こしている部分が発見されるかもしれません

simogumi
質問者

お礼

回答ありがとうございます。 >似たようなデータを作成してアップしていただくと不具合を起こしている部分が発見されるかもしれません その仕方がわかりません。新しく質問を立ち上げるしかないのかな? 実際に作って回答していただいて嬉しく思います。 ちゃんと帰って来たって事は、P列に入れてある式に問題がありそうですね。 見直してみます。

その他の回答 (6)

  • chuchuo
  • ベストアンサー率45% (99/217)
回答No.7

COUNTBLANK はそのセルに空白を制御するような数式が入っていたりすると 値が入っている場合でも空白としてカウントされます。 ひょっとするとVBAで代入していることで空白カウント扱いとなっているのかも? If(B5="","",......)と変更すればどうなるでしょう?

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.5

そういうときは、いきなり1つにまとめずに3つの条件式に分けて作ります。 それから1つにしても良いですけど、メンテナンスを考えると見えないところで仮計算して、結果だけ必要なところに持ってくるということを良くやります。 まず、判りやすく1つ1つステップ毎に確認してみてはいかがでしょうか? そうしないと、次手直しするときにまた大変なことになりますよ。

simogumi
質問者

お礼

回答ありがとうございます。 私もそう思ってやってみたのですが、置き場所が変わって頭が混乱してしまって(⌒_⌒; もう一度ゆっくり立て直してみたいと思います。

  • chuchuo
  • ベストアンサー率45% (99/217)
回答No.4

B列またはD列の値は手入力したものですか? それともどこかのセルを参照する数式ですか。

simogumi
質問者

お礼

回答ありがとうございます。 B列は、VBAによりダブルクリックすると名前のリスト一覧が出るように設定してあります。 D列はB列の中から手動でコピペしてます。 でも、P列の値はD列を参照して計算する式が入ってます。 P列の式がおかしいのかもしれないという気がしてきました。 見直してみます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

ひょっとして計算方法が手動になっていないでしょうか、ご確認下さい。

simogumi
質問者

お礼

回答有難うございます。 計算式はちゃんと自動になってました。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

最初の、 =IF(COUNTBLANK(B5)=1,"" を =IF(COUNTBLANK(B5)=1,"xxx" に変えたらどうなります?

simogumi
質問者

お礼

回答ありがとうございました。 問題はこの計算式ではなかったようです。 N列に加えるP列の計算式が間違ってるみたいでした。 お騒がせしました。

simogumi
質問者

補足

変更してみました。 =IF(COUNTBLANK(B7)=1,"xxx",IF($D$38=B7,$P$38+N7,IF($D$39=B7,$P$39+N7,$P$35+N7))) って事ですよね? B列に文字が入っているのに『XXX』となってます。 何が悪いのかがさっぱりですo(TヘTo)

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

このシートに入力されている 値 は、 すべて 数字項目ですか?

simogumi
質問者

お礼

回答ありがとうございました。 問題はこの計算式ではなかったようです。 N列に加えるP列の計算式が間違ってるみたいでした。 お騒がせしました。

simogumi
質問者

補足

B列・D列は文字列でN列・P列は数値です。

関連するQ&A