• 締切済み

エクセル関数について

エクセルの関数について質問です。 セルに入力されている文字によって、 計算式を自動で変えるにはどのような数式を入れればいいでしょうか。 例えば、 品目・グラム(緑のセル)に リンゴ・100gと入力すると、栄養素(オレンジのセル)が自動計算されるような式です。 画像の品目は3種類しかないですが、作りたい資料には品目がたくさんあるので 量が多くても対応できる式を教えてください。 宜しくお願い致します。

みんなの回答

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.7

< ANo.6 >セル C10 に、 > =INDEX($C$5:$C$7,MATCH($B$10,$B$5:$B$7,0))*INDEX(I$10:I$12,MATCH($B10,$H$10:$H$12,0)) >を入れ …      ↓ 錯誤訂正  =INDEX($C$5:$C$7,MATCH($B10,$B$5:$B$7,0))*INDEX(I$10:I$12,MATCH($B10,$H$10:$H$12,0))   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.6

添付画像のシート設定で、B10 ~ B12 に品目を入力したとき、その品目について、  C5 ~ C7 に入っているグラム値を拾い、I11 ~ L12 から割合を拾って乗算・表示する例…。 セル C10 に、  =INDEX($C$5:$C$7,MATCH($B$10,$B$5:$B$7,0))*INDEX(I$10:I$12,MATCH($B10,$H$10:$H$12,0)) を入れたあと、その写しを C10 ~ F12 に貼り付ける。   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.5

シート設定は添付画像のとおり、かつシート関数使用で、となるとすごく複雑になりそう。 シート設計からの演習問題なら、よりスマートに処理できそうです。 鍛錬用・演習問題なので、とにかくデッチあげなきゃアカンのでしょうか…。   

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

>品目・グラム(緑のセル)にリンゴ・100gと入力すると、栄養素(オレンジのセル)が自動計算されるような式です。 画像が読み取れないのでどのような結果を期待しているのかを推測できません。 従って、具体的な数式を提示できません。 リンゴ100gの栄養素はビタミン、ミネラル、たんぱく質、糖質(?)がどの程度含まれるかを算出できれば良いと推測しますが、H8:L12の表に記載されている値が%単位のように見えます。(値が読めない) B4:C7の表についても読み難く、判断に苦慮します。 緑のセルには実際の値を入力して頂くことと、オレンジのセルには計算結果の値(電卓で計算した結果)を提示して頂ければ具体的な数式を組み立てることができます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 前提条件として、左上の表の品目欄に入力されている「リンゴ」、「バナナ」、「ブドウ」等の品目名には、例えば「リンゴ」が2箇所のセルに入力されているといった様な、重複して入力されているものは存在しないものとします。  その場合、まず、B10セルに次の様な関数を入力して下さい。 =IF(B9="","",IF(ISERROR(1/(VLOOKUP("*?",INDEX($B$4:$B$7,MATCH(B9,$B$4:$B$7,0)+1):$B$7,1,FALSE)<>"")),"",VLOOKUP("*?",INDEX($B$4:$B$7,MATCH(B9,$B$4:$B$7,0)+1):$B$7,1,FALSE)))  次に、C10セルに次の様な関数を入力して下さい。 =IF($B10="","",IF(AND(ISNUMBER(VLOOKUP($B10,$B$5:$C$7,2,FALSE)),ISNUMBER(INDEX($I$10:$L$12,MATCH($B10,$H$10:$H$12,0),COLUMNS($C10:C10)))),VLOOKUP($B10,$B$5:$C$7,2,FALSE)*INDEX($I$10:$L$12,MATCH($B10,$H$10:$H$12,0),COLUMNS($C10:C10)),"データ無し"))  次に、C10セルをコピーして、D10~F10のセル範囲に貼り付けて下さい。  次に、B10~F10のセル範囲をコピーして、C列~F列の11行目以下に貼り付けて下さい。  以上です。

  • msMike
  • ベストアンサー率20% (368/1812)
回答No.2

C11: =IFERROR(VLOOKUP(LEFT($B11,FIND("・",$B11)-1),$H$11:$L$13,COLUMN(B2),FALSE),"")

  • kuma56
  • ベストアンサー率31% (1423/4527)
回答No.1