- 締切済み
エクセルで商品別の平均金額を出す方法3
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
基データから、上下が逆転させたデータを作り、MATCH関数で商品名を見つけると最終の(最近の)仕入れ価格がわかるのでは。MATCH関数は最初の該当行を見つけるから。 例データ A-F列 基データはA,B列 商品名 仕入価格 作業列 作業列 商品名 仕入価格<-最終 a 1 d 10 a 2 a 2 b 9 b 9 d 3 f 8 c 6 f 4 b 7 d 10 s 5 c 6 f 8 c 6 s 5 s 5 b 7 f 4 f 8 d 3 b 9 a 2 d 10 a 1 A,B列は基データで、 C2の式は =INDEX(A:A,COUNTA(A:A)-ROW()+2) 下方向に式を複写する。 D2の式は =INDEX(B:B,COUNTA(B:B)-ROW()+2) 下方向に式を複写する。 これで下から上への順序のデータが出来る。 F列の商品名はフィルタオプションの設定ー重複するレコードは無視する、で出せる。 F2の式は =INDEX(C:D,MATCH(E2,C:C,0),2) 下方向に式を複写する。
- maron--5
- ベストアンサー率36% (321/877)
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1のI列を作業列として次の式を入力して下方にオートフィルドラッグします。 =IF(D2="","",IF(COUNTIF(D$2:D2,D2)=1,INT(MAX(I$1:I1))+1+1/100000,INT(INDEX(I$1:I1,MATCH(D2,D:D,0)))+COUNTIF(D$2:D2,D2)/100000)) シート2のE2セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A2="","",INDEX(Sheet1!$E:$E,MATCH(INT(INDEX(Sheet1!$I:$I,MATCH($A2,Sheet1!$D:$D,0)))+COUNTIF(Sheet1!$D:$D,$A2)/100000,Sheet1!$I:$I,0)))
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
前々回 http://okwave.jp/qa/q6977714.html 前回 http://okwave.jp/qa/q6977977.html 今回は画像添付ということですが 画像が小さすぎて見えません。 (雰囲気はなんとなくわかりますが) 前回の回答が中途半端だったのでもう一度作業列案。 (中身を理解してください) D2セルに =IF(ISNA(MATCH(A2,D3:D$3000,0)),A2,"") 下へオートフィル 最大3000行までの検索ですが、大きめの値にしておけばよいと思います。 MATCH関数で下にA列の値と同じ値がない場合、A列の値とする。 (MATCH関数で下にA列の値と同じ値がある場合、空白にする。) これで、最後の商品名が表示されます。 あとはINDEX/MATCH関数で仕入価格を検索します。 G2セルに =INDEX(B:B,MATCH(F2,D:D,0)) 下へオートフィル