ExcelのIF関数で商品ごとに列が違う表を処理する方法|計算式の考え方と実用例

Excel

Excelで「商品ごとに列がバラバラになっている表にIF関数を使いたいが、どう書けばいいかわからない」という悩みはよくあります。特に、りんご・みかんなど商品ごとに列がずれている形式では、単純なIF関数では対応しづらくなります。本記事では、そのようなケースでの考え方と実用的な数式の作り方をわかりやすく解説します。

まず理解すべきポイント:IF関数だけでは解決できないケース

今回のように「商品ごとに列が変わる表」は、IF関数単体ではなく、参照方法の工夫が必要になります。

IF関数は「条件分岐」を行う関数ですが、列構造そのものを自動で変えることはできません。

そのため、まずは「どの列から何を取り出すか」を決める設計が重要になります。

例の表構造と問題点

例えば以下のような表を考えます。

A列:商品名、B列:数量、C列:単価、D列:計算結果

りんご・みかんのように行ごとに商品が変わる場合は問題ありませんが、「列がずれる構造」では参照が固定できません。

基本解決策①:IF関数と掛け算の組み合わせ

もっともシンプルな方法は「条件ごとに計算式を切り替える」方法です。

例えば以下のような式になります。

=IF(A2=”りんご”,B2*C2,IF(A2=”みかん”,B2*C2,0))

このようにすることで、商品ごとに異なる計算を成立させることができます。

基本解決策②:列構造が違う場合はINDEXやVLOOKUPを使う

列そのものが商品ごとに違う場合は、IF関数よりも検索関数の方が適しています。

例えばVLOOKUPを使うと、商品名をキーにして数量や単価を取得できます。

=VLOOKUP(“りんご”,A:D,3,FALSE)*VLOOKUP(“りんご”,A:D,2,FALSE)

応用:IFとVLOOKUPの組み合わせ

実務ではIF関数と検索関数を組み合わせることで柔軟な処理が可能になります。

例えば「特定の商品だけ割引する」といった条件付き計算も対応できます。

=IF(A2=”りんご”,B2*C2*0.9,B2*C2)

よくある勘違い

IF関数で列構造そのものを動的に変えられると考えるのは誤解です。

Excelでは「条件分岐」と「データ取得」は別の役割の関数として設計されています。

そのため、状況に応じて関数を使い分ける必要があります。

まとめ

商品ごとに列が変わるような表では、IF関数だけでは対応が難しいケースがあります。

基本は「IF関数で条件分岐」+「VLOOKUPやINDEXでデータ取得」という組み合わせが有効です。

表の構造を整理することで、よりシンプルでミスの少ないExcel設計が可能になります。

コメント

タイトルとURLをコピーしました