• ベストアンサー

Excel;特定の値を入力するとその隣のセルの値を減算するようにしたい。

シートαに   A     B  C   D 1 たまねぎ |4|豚肉肩|300  2 にんじん |3|ひき肉|400 3 ジャガイモ|7|いわし|250 のように以下ずらずらっと材料を記入しています。 実は今回、任意の材料名を書くとその隣の値から減算される、というふうにしたいと思っています。 たとえばシートβの好きな場所に      いわし|150 と書くと、シートαが   A     B  C   D 1 たまねぎ |4|豚肉肩|300  2 にんじん |3|ひき肉|400 3 ジャガイモ|7|いわし|100 というふうにしたいのですが、どういった関数を利用していけばいいんでしょうか・・・

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

シートBに 材料名と引き算する値のリストを作成します。 引き算しない場合は、未入力か0を入れます。 シートAで 材料の数を入れる時に =250-VLOOKUP(C3,B!$A$1:$B$6,2,FALSE) の様に入力します。 説明: シートBから該当値を探してきます VLOOKUP(C3,B!$A$1:$B$6,2,FALSE) ↑ VLOOKUP(いわしを検索,シートB!対応表の範囲,2列目から値を持ってくる,一致した場合だけ)

doracken
質問者

お礼

なるほど、VLOOKUP関数を使えばいいんですか。 ありがとうございます。 ただ対応表の範囲を複数の列を選択する方法がわからないので、もう少し勉強してみます。

その他の回答 (1)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> どういった関数を利用していけばいいんでしょうか・・・ 関数では不可能です。 やるとしても、VBAを使用する事になります。 > 特定の値を入力すると Excelは「特定の値が入力された」という事を判断しません。 たとえば、家計簿ならばどこかの値が変更された、ファイルが開かれた際に全部の計算をやりなおします。 計算結果が常に同じなので、変わっていない→前の値を覚えているように見えるだけです。 -- VBAを使うにしても、 > 任意の材料名を書くとその隣の値から減算される、 が新しく書かれたのか、前から書かれていたのかの判断が出来ないので、ひたすら値を減らし続けるような事になりかねません。 また、材料名や値を訂正したときは?削除したときは?などの検討も必要です。 「特定の値を入力するとその隣のセルの値を減算するようにしたい。」という処理を使って「何をやりたいのか?」という目的を補足してもらえれば、代替案や制限つきの案を提示できるかも?

doracken
質問者

お礼

確かにできないようですね。言葉足らずでごめんなさい。もっとExcelを勉強してどうしたいのか考え直して出直してみます。

関連するQ&A

専門家に質問してみよう