• ベストアンサー

エクセル 関数

A1とB1が同じ値ならC1の値を、A1とB1が同じ値では無い場合は、その差の値を、B1が0ならA1の値を出したいのですが(その場合はC1は0です)、その場合は、どの様な関数を使えばいいでしょうか??? 関数初心者で大変困っています。 前回も関数に関して質問したのですがピッポットテーブルで・・・と回答を下さった方がおられましたが、ピッポットテーブルって何ですか??? 関数辞典、片手に皆様の助けを待っています。 宜しくお願い致します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

質問では、条件が2種あるようです (A)A1=B1のときと   A1<>B1のとき の型 もうひとつは (B)B1=0 と   B1<>0 の型 です。 両者は並存できる場合があり、 (A)と(B)をどちらを優先するのか、IF関数で言えば、どちらがネストが深くないほうになるか、良く考えて、質問を表現してください。そうすれば質問にもならない問題だと思いますが。 多分(B)か優先かなと思いますが、 =IF(B1=0,A1,if(A1=B1,C1,A1-B1)) 差という表現も絶対値かどうかあいまいですが、そうでないとして上記にした。 ーー ピボットテーブルなんかWEB照会すれば腐るほど記事が出てくる。 とりあえず、簡単な表を作り、メニューで、データーピボットテーブル・・をクリックしてみてください(2007以前)。 ウイザードが案内しますが、レイアウトのところだけ、わかればどんなものか結果が出ます。

ayamyu
質問者

お礼

ご回答有難うございました。 ピッポットテーブルに関しての回答も頂きまして大変参考になりました。 1つ1つ理解しながら頑張りたいと思います。 またよろしくお願いいたします。

その他の回答 (6)

noname#58440
noname#58440
回答No.6

  訂正です。 =if(A1=B1,C1,if(A1-B1)) この式は間違い =if(A1=B1,C1,ABS(A1-B1)) =if(B1=0,A1,if(A1=B1,C1,if(A1-B1))) これも間違い =if(B1=0,A1,if(A1=B1,C1,ABS(A1-B1)))

ayamyu
質問者

お礼

ご回答有難うございました。 内容を辞典片手に解読しながら頑張りたいと思います。 また宜しくお願い致します。

noname#252806
noname#252806
回答No.5

2つめ3つの答えはどちらも AとBの差額になります。 =IF((A1-B1)=0,C1,A1-B1)。

ayamyu
質問者

お礼

ご回答有難うございました。 早速チャレンジしてみます! またよろしくお願い致します。

noname#58440
noname#58440
回答No.4

  =if(A1=B1,C1,if(A1-B1)) これで、A1とB1が同じ値ならC1の値、A1とB1が同じ値では無い場合はその差 と、なます。 しかし、「B1が0なら」の判断は上記の判断より先にするのですか? B1=0、A1=3・・・「B1が0」であり「A1とB1が同じ値では無い」でもあります。 B1=0、A1=0・・・「B1が0」であり「A1とB1が同じ値」でもあります。 B1が0ならを最優先の判断基準とするなら、 =if(B1=0,A1,if(A1=B1,C1,if(A1-B1))) >(その場合はC1は0です) 意味が判りません ピッポットテーブルは本でも買ってきて勉強するか、ツールバーの「データ」-「ピッポットテーブルとピッポットグラフ レポート」をクリックして試行錯誤で勉強して下さい。 ここに書ける程単純ではないので失礼。    

ayamyu
質問者

お礼

ご回答有難うございました。 また質問が言葉足らずで申し訳ありません。 ピッポットテーブルも1から勉強したいと思っています。 また宜しくお願い致します。

noname#77845
noname#77845
回答No.3

#2です。 #1さんの回答を見て「B1が0ならA1の値を出したい」に気づきました。(笑) なので、 =IF(B1=0,A1,IF(A1=B1,C1,ABS(A1-B1))) でいかがでしょう? A1とB1が等しくないときはA1とB1の差なので、絶対値をとってみました。

ayamyu
質問者

お礼

わざわざ2回も足を運んで頂いて、有難うございました! 丁寧な回答で、大変ためになりました。 またよろしくお願い致します。

noname#77845
noname#77845
回答No.2

その計算結果は、どこのセルに出したいのでしょうか? C1には出せませんよ…。 条件の中で、C1の値を出力しようとしているのにC1に関数が入っていたら循環参照になってしまいますから。 D1に出力するなら =IF(A1=B1,C1,ABS(A1-B1)) でいかがでしょうか?

ayamyu
質問者

お礼

ご丁寧な回答有難うございました。 また質問が言葉足らずで申し訳ありませんでした。 辞典片手に頑張ってみます! またよろしくお願い致します。

  • lele00
  • ベストアンサー率29% (74/250)
回答No.1

=IF(B1=0,A1,IF(A1=B1,C1,A1-B1)) ではどうでしょう。

ayamyu
質問者

お礼

ご回答有難うございます。 早速チャレンジしてみます。 またよろしくお願い致します。