• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:条件にあうデータ抽出のやりかたについて)

エクセルVBAで顧客データを集計する方法とは?

このQ&Aのポイント
  • エクセルVBAを使用して顧客データを集計する方法について、初心者向けに解説します。
  • 顧客データのリストから未納者一覧を作成するためのエクセルVBAの詳細な手順をご紹介します。
  • 現在の顧客データは150名ほど入力されており、商品の種類は23種類です。

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

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

(例データ) 氏名 商品A 入金 商品B 入金 商品C 入金 中井 55円 済 65円 未 高井 66円 未 85円 未 上井 41円 未 32円 済 33円 未 高井 16円 未 21円 未 大川 9円 未 74円 済 75円 未 高井 34円 未 127円 未 杉井 35円 済 128円 未 (VBA) Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet '----A Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") '-----B d = sh1.Range("A2").CurrentRegion.Rows.Count ' MsgBox d k = 1 For i = 2 To d For j = 3 To 20 Step 2 If sh1.Cells(i, j) = "未" Then sh2.Cells(k, "A") = sh1.Cells(i, "A") sh2.Cells(k, "B") = sh1.Cells(1, j - 1) sh2.Cells(k, "C") = sh1.Cells(i, j - 1) sh2.Cells(k, "D") = sh1.Cells(i, j) k = k + 1 End If Next j Next i '------- sh2.Range(Cells(1, 1), Cells(k - 1, 4)).Select Selection.Sort Key1:=sh2.Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin End Sub (結果) 高井 商品A 66円 未 高井 商品B 85円 未 高井 商品A 16円 未 高井 商品B 21円 未 高井 商品A 34円 未 高井 商品B 127円 未 上井 商品A 41円 未 上井 商品C 33円 未 杉井 商品B 128円 未 大川 商品A 9円 未 大川 商品C 75円 未 中井 商品B 65円 未 ソート後名前が前行と同じとき空白は、判るだろうと手抜き。 ・For j = 3 To 20 Step 2は3,5,7,・・19の9列を Maxに考えてますが適当に修正を。 ・d = sh1.Range("A2").・・やFor i = 2 To d は実際に合わせて適当に。

tomosato
質問者

お礼

丁寧なサンプルまでつけていただき感謝します。 おかげさまで何とか解決できそうです。本当にありがとうございました。

関連するQ&A

専門家に質問してみよう