複数条件の番号付けについて
「メーカー」「商品」「販売可否」のある行に対し、以下の条件付きで番号を1から振りたいと考えています。
条件1: メーカー及び商品が重複した行があれば、既に振られた番号にする
条件2: 販売可否が空白の場合は無視する
条件3: 同じメーカーが連続するように番号を振る
条件4: 元の表は並び替えなどの加工は出来ない
一応、添付画像のような形で実現は出来ています。
以下のような式を使っています。
(1)G4:G21 =IF(COUNTIF(C$3:C3,C4)=0,MAX(G$3:G3)+1,VLOOKUP(C4,C$3:G3,5,FALSE))
(2)I4:I21 =IF(COUNTIF(D$3:D3,D4)=0,MAX(I$3:I3)+1,VLOOKUP(D4,D$3:I3,6,FALSE))
(3)K4:K21 =IF(E4<>"",G4*1000+I4,"")
(4)M4:M21 =INT(IF($K4<>"",SUMPRODUCT(($K$4:$K$21<>"")*($K$4:$K$21<=$K4)/COUNTIF($K$4:$K$21,$K$4:$K$21)),0))
(4)で算出される値を得るために、(1)(2)(3)の行を使っています。
ちなみにこの(4)の値を使って、B24:D37の表を作っています。
※画像では省略していますが、メーカー・商品ごとの台数・金額合計の表になります。
この表で使っている式は以下の通りとなります。
(5)B26:B37 =IF(MAX(B$25:B25)+1>MAX($M4:$M21),"",B25+1)
(6)C25:C37 =IFERROR(INDEX($C$4:$E$21,MATCH($B25,$M$4:$M$21,0),1),"")
(7)D25:D37 =IFERROR(INDEX($C$4:$E$21,MATCH($B25,$M$4:$M$21,0),2),"")
質問としては、(4)を求める為に4列使っているものを減らせられないか、理想は1列ですがせめて2列に纏められないかと思っております。
何卒、宜しくお願い致します。
補足
回答ありがとうございます。だいたい私の予想とあたっておりました、一体誰が決めたのかもっと詳しく知りたいのでこの質問をもう少し残しておきます。