• ベストアンサー

重複するデータが含まれる列からVLOOKUPする

こんにちわ・・・ マイクロソフト、エクセルに関する質問なのですが。 「1以上の数値が入力されている列を選びだし、その列の1行目と2行目のデータを順に表示する。」 といったことがやりたいのですが、、、 うまく説明できてなくて申し訳ないです。 詳細は添付データの画像を参照ください。 何卒、ご回答のほどよろしくお願いいたします・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

作業列使いますが E2セルに =IF(B2>0,ROW(),"") 下へコピィ 数値が入っている行のみ行番号を表示します。 G2セルに =IF(ISERROR(SMALL($E:$E,ROW(A1))),"",INDEX(B:B,SMALL($E:$E,ROW(A1)))) 右へコピィ。下へコピィします。 H2セル(価格)は =IF(ISERROR(SMALL($E:$E,ROW(C1))),"",INDEX(D:D,SMALL($E:$E,ROW(C1)))*F3) 下へコピィしては如何でしょうか。

stotzem
質問者

お礼

丁寧に教えてくれて、ありがとう\(*^▽^*)/ とても助かりました。。。

その他の回答 (1)

回答No.1

5個程度なら配列数式でも良いとは思いますが あえてマクロに挑戦してみました。 自動記録を少し修正 Sub Macro1()   Range("f12:H18").ClearContents   Range("B12:C17").AdvancedFilter Action:=xlFilterCopy, _   CriteriaRange:=Range("B19:B20"), CopyToRange:=Range("F12"), _   Unique:=False   Range("F12") = "発注個数"   Range("H12") = "価格"   Range("H13:H17").FormulaR1C1 = _   "=IF(RC[-2]="""","""",LOOKUP(RC[-1],R13C3:R17C4)*RC[-2])"   Range("H13:H17") = Range("H13:H17").Value   Range("H18").FormulaR1C1 = "=SUM(R[-5]C:R[-1]C)"   Range("G18") = "合計" End Sub これを矢印に登録します 参考まで

stotzem
質問者

お礼

すごいですね! とても、勉強になります。。。 商品数は600個くらいなので、数式よりマクロが良いのですかね!? お二人方、とにかく本当にありがとう!

関連するQ&A