• 締切済み

エクセルで商品別の平均金額を出す方法3

なんども申し訳ないのですが、まだ解決できずにいます。 1.画像の右側のシートEの現在仕入に、左側シート(E)に入力した最後の仕入価格を出力したい。 前回、前々回の質問に回答をくれた方々、理解が足らず本当にすみません。 よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

基データから、上下が逆転させたデータを作り、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)
回答No.3

◆作業列なしのこんな方法はいかがでしょう E2=LOOKUP(0,0/(Sheet1!$D$1:$D$100=A2),Sheet1!$E$1:$E$100) または、 E2=LOOKUP(10^10,Sheet1!$E$1:$E$100/(Sheet1!$D$1:$D$100=A2)) ★下にコピー ◆範囲を列指定することもできますが、計算に時間がかかります E2=LOOKUP(0,0/(Sheet1!D:D=A2),Sheet1!E:E) または、 E2=LOOKUP(10^10,Sheet1!E:E/(Sheet1!D:D=A2))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート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)))

回答No.1

前々回 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)) 下へオートフィル

関連するQ&A