お願いします。
<アイテムリスト>
B C D E F
2 品番 個数 単価 0個削除 カウント
3 A001 10000 100 A001 A0011
4 A001 30000 80 A001 A0012
5 A001 50000 50 A001 A0013
6 B001 0 90
7 B001 10000 90 B001 B0011
8 B001 30000 80 B001 B0012
9 B001 50000 70 B001 B0013
<入力シート>
B C D E F
16 品番 個数 単価
17 A001 10000 100 1
18 A001 30000 80 2
19 A001 50000 50 3
20
21
アイテムリストには、品番とそれぞれの個数に対する単価が記載されています。
0個と10000個は同じ単価になるのでE列で削除し、F列では個数・単価を識別できるよう
COUNTIF関数で、品番とカウント数をつなげて表示しています。
F列:=IF(C3=0,"",E3&COUNTIF($E$2:E3,E3))
入力シートのB列に品番を入れると「C列:個数」と「D列:単価」が表示されるよう
E列で入力数をカウントし下記の関数をいれました。
E列:=IF(B17="","",COUNTIF($B$16:B17,B17))
C列:=INDEX($C$3:$C$9,MATCH($B17&$E17,$F$3:$F$9,0))
D列:=INDEX($D$3:$D$9,MATCH($B17&$E17,$F$3:$F$9,0))
今回教えていただきたいのは、入力シートにA001が何度表示されても個数・単価が
表示されるようにしたいのです。
<入力シート:希望する結果>
B C D E F
16 品番 個数 単価
17 A001 10000 100 1
18 A001 30000 80 2
19 A001 50000 50 3
20
21 A001 10000 100 1
22 A001 30000 80 2
23 A001 50000 50 3
※結果が正しければE列は1,2,3でなくても良いです
上表のように、再度A001を入力してもアイテムリストから抽出されるようしたいのですが、
現在のままではE列は当然ながら4,5,6となるため、エラーになってしまいます。
アイテムリストからA001全個数を表示させて、入力数がA001全個数を超えたら1に戻す。
などいろいろ試しましたがうまくできませんでした。
「C列:個数」は3つセットとは限りません。2つセットの場合もあります。
また、入力シートで品番は必ず個数分の入力を行います。
入力は何回も(何週もと言った方がいいでしょうか)繰り返すことがあります。
このような条件でうまく抽出する関数はありますでしょうか?
よろしくお願いいたします。
|