2017-07-16 3 views
0

私は食事計画に役立つExcelシートに取り組んでいます。複数の列をExcelで索引付けすると、隣接列が返されます

    **Monday** 
Breakfast  Bagel   1  Cream Cheese 1   
Lunch   Spinach  1  Eggs   4  Cream Cheese 1  
Dinner   Pork   1  Eggs   2 

        **Tuesday** 
Breakfast  Cereal  2  Milk   1  Eggs   3 
Lunch   Bagel   1  Butter   1 
Dinner   Eggs   2 

CURRENT OUTPUT:数字は、私が購入する必要があり、各成分のサービング数を表す

Ingredients Needed: 
Eggs   2 
Bagel   2 
Spinach  1 
Pork   1 
Cereal   2 
Milk   0 
Butter   0 
Cream Cheese 0 

を以下に示すように、現在、私は私のデータは方法で保存されています。

私が直面しています問題は、私の現在の式:

= INDEX($ C $ 12:$ C $ 58 SMALL(IF(ISNUMBER(SEARCH($ B $ 60 $ B 12 $:$ B $ 57) (B1)))、ROW(B1)))

一度に1つの行のみを索引付けします。たとえば、私が週に購入する必要がある卵の数を検索する場合、数式は卵2個を返します(卵の列Bと列Cのみを検索するため)。

購入する必要がある成分をすべて返すことができる回避策がありますか?私は多くの成分(100 +)を持っているので、私の現在の数式を使用することは実現可能ではないように、私は個々に各列をインデックスすることができることを実現します。

すべてのヘルプは大規模なあなたは合計範囲は基準範囲からオフセットされSUMIFを、使用することができます

+0

私は自分のデータをテーブルに入れます。あなたは各食事の列と各原料の列を持っているので、各成分の合計を見つけるために列を合計するだけです。これは、入力と出力の中間ステップとして実行してください。 – JeffUK

答えて

1

を高く評価しています。例えば、簡単にするために、のはH19にC12は、データ(成分と量)が含まれていることを言わせて、してみてください...

=SUMIF($C$12:$G$19,B60,$D$12:$H$19) 

... B60は、関心の成分を含んでいる場合。合計範囲D12:H19が基準範囲C12:G19からオフセットされていることに注目してください。

+0

これは完全に機能し、私のデータを再編成する時間を節約できました。本当にありがとう!私は将来SUMIF関数をオフセットする方法を覚えています – Megan

関連する問題