IFの入れ子7個以上をEXCEL2003で使いたい
EXCEL2003でIFの入れ子が7個までしか使えませんが、
関数またはVBAを使って7個以上の入れ子を機能させるには
どうしたらいいでしょうか。
やりたいことは、ピボットテーブルで使いやすいように
文字列データを別の列にコピーしたいのですが、
元データにはいろいろな文字列が順不同で入っており、
それを取り出すのにIFの入れ子を多様しています。
たとえばこんなデータなのですが、
商品番号 商品タグ 売上金額
No1 ■果物■りんご 1000
No2 ■野菜■きゅうり 2000
No3 ■果物■みかん 1000
No4 ■野菜■にんじん 2000
No5 ■果物■りんご 1000
No5 ■果物■りんご 1000
No6 ドリンク 1000
商品タグには
大カテゴリ 果物、野菜
中カテゴリ 果物の場合、りんご、みかん
野菜の場合、きゅうり、にんじん
と分類されています。
一つのセルに大カテゴリと中カテゴリの両方が入ります。
これを中カテゴリをキーにしてピボットテーブルで集計したい場合、
下記の様もう一つ列を作り、そこに集計したいものだけが入った
データを作らなければなりません。
A B C D
1商品番号 商品タグ 売上金額 中カテゴリ
2No1 ■果物■りんご 1000 りんご
3No2 ■野菜■きゅうり 2000 きゅうり
4No3 ■果物■みかん 1000 みかん
5No4 ■野菜■にんじん 2000 にんじん
6No5 ■果物■りんご 1000 りんご
7No6 ドリンク 1000 その他
商品タグは実際にはこの前後にたくさんの文字列があり、
文字数も決まっていませんので、文字列を取り出すには
search関数やmid関数などを使って取り出しています。
また、取り出したい文字列が含まれていない場合は
すべて「その他」と入力したいのです。
セルD2には下記の式を入れています。
=IF(ISERROR(MID(B2,SEARCH("■りんご",B2),3)=TRUE),
IF(ISERROR(MID(B2,SEARCH("■みかん",B2),4)=TRUE),
IF(ISERROR(MID(B2,SEARCH("■きゅうり",B2),5)=TRUE),
IF(ISERROR(MID(B2,SEARCH("にんじん",B2),5)=TRUE),"その他","にんじん"),"きゅうり"),"みかん"),"りんご")
これをIFの入れ子7個以上でも使えるようにするには、どうしたらいいでしょうか。