• ベストアンサー

Excelの関数について

[C1のセル値]-[A1またはB1のセル値] を使って計算したい場合の計算式を教えて下さい。 A列、B列、C列には具体的な数値を入力します。 D列にその結果を表示させる関数を入力したい。 と考えています。 但し、以下の条件を満たす事が必須となります。 (1)A、B、またはCのセルが未入力の場合はDは空白セルのまま。 (2)A、Bいずれかの一方が入力されている場合はCの値を使って計算し結果を表示。 (3)A、Bいずれも入力されている場合はBを優先してCの値を使って計算し結果を表示。 よろしくお願いします。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

提示の条件をそのまま数式にすると以下のようになります。 =IF(OR(AND(A1="",B1=""),C1=""),"",C1-IF(B1<>"",B1,A1))

aPokerFace
質問者

お礼

まさしくその通りです。ありがとう御座いました。 意図するカタチで表示されました。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

添付図: 1)Cが空白じゃなく,かつAB両方が空白ではない時に計算する 2)Bが空白じゃない時にはB,そうでなければAを引く =IF(AND(C1<>"",A1&B1<>""),C1-IF(B1<>"",B1,A1),"")

aPokerFace
質問者

お礼

図解入りでご説明戴きありがとう御座います。 私の理解力が乏しい為に、マッチングしているか判断付かず、今回ベストアンサーを見送ってしまいましたが、なるほど!どうして、計算式がこちらの方が短くスマートだったかもしれませんね。 出来るならこちらもベストアンサーとして評価したかったです。 勉強になりました。ありがとう御座います。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

#1です。 私の勘違いでした。たぶん、「(1)AもBも未入力か、Cが未入力のとき、」 ということね。 だったら、そのまま、 D1: =IF(OR(AND(A1="",B1=""),C1=""),"",IF(OR(A1="",B1=""""),C1-MAX(A1,B1),C1-B1)) 勘違いしたから、おかしくなってしまった。

aPokerFace
質問者

お礼

訂正ありがとうございます。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

(1)、(2)、(3)の条件だと、不備がある。 (1)は「Cのセルが未入力の場合」として、A、Bについてはいらないのではないか。 だったら、 D1: =IF(C1="","",IF(OR(A1="",B1=""),C1-MAX(A1,B1),C1-B1))

aPokerFace
質問者

お礼

早速の回答ありがとうございます。 残念ながら今回の場合、Cセルに入力値がある場合Dセルにその値が反映されてしまうとなると、目的に合いませんが、…なるほど、これはこれで役に立つ事があります。っというか、そうしたい場合も過去に遭遇しています。 勉強になりましたありがとう御座いました。

関連するQ&A

専門家に質問してみよう