
VBA素人で困っています。
WEB検索し色々と読みましたがいまいちわからず・・・
下記のようなコードを作りたく、お知恵を拝借できますでしょうか。
------
◆元データ
品番(キーID) 製品番号 形式 車名 仕入金額
28100-30070 TYS190 KDH200 ハイエース 27500
28100-30070 TYS190 KDH227 ハイエース 27500
28100-30100 TYS190 KDH206 ハイエース 27500
28100-30070 TYS190 KDY280 ダイナ 27500
28100-30070 TYS190 KDH206 ハイエース 27500
28100-30070 TYS190 KDH205 ハイエース 27500
:
↓↓↓↓↓↓↓↓↓↓
品番(キーID) 製品番号 形式 車名 仕入金額
28100-30070 TYS190 KDH200・KDH227・KDY280・KDH206・KDH205 ハイエース・ダイナ 27500
28100-30100 TYS190 KDH206 ハイエース 27500
※キーIDが同じ場合
・形式を1つのセルにまとめる
・車名を1つのセルにまとめる、重複する場合は1つにする
・製品番号、仕入金額を1つのセルにまとめる(キーID
ID1つで同製品番号、同価格)
------
どなたかこのような動作を行うvbaのコードを教えてください。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんばんは
回答がつかないようなので・・・
列の区切りがはっきりしませんけれど、A~E列に、品番、製品番号、形式、車名、仕入金額の5項目が存在するものと解釈しました。
品番をキーにして、各列の内容を「重複を省き、"・"を区切り文字として連結したい」ということと解釈しました。
結果をどこに表示するのかわからないので、同じシートに2行空けてそのまま下部に表示させています。
以下、ご参考までに。
(必ずしも効率が良い方法ではありませんけれど…)
Sub Sample_Q12394317()
Dim data, dic, rng As Range, keyID As String
Dim mxR As Long, rw As Long, i As Long, j As Long
Set dic = CreateObject("Scripting.Dictionary")
mxR = Cells(Rows.Count, 1).End(xlUp).Row
data = Range(Cells(2, 1), Cells(mxR, 5)).Value
rw = mxR + 3
Set rng = Cells(rw, 1).Resize(mxR - 1)
rng.Value = Cells(2, 1).Resize(mxR - 1).Value
rng.RemoveDuplicates Columns:=1, Header:=xlNo
While Cells(rw, 1) <> ""
keyID = Cells(rw, 1).Value
For j = 2 To 5
dic.RemoveAll
For i = 1 To mxR - 1
If data(i, 1) = keyID Then
If Not dic.exists(data(i, j)) Then dic.Add data(i, j), 1
End If
Next i
Cells(rw, j).Value = Join(dic.keys, "・")
Next j
rw = rw + 1
Wend
End Sub
ありがとうございます。
こちらのコードで反映されました。
非常に助かりました!!!
(つたない説明にもかかわらずご対応ありがとうございました。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのSQLで、NULLかNULLでな...
-
sqlserverで集計結果をUPDATEし...
-
ACCESSで複数テーブルを結合し...
-
オラクルではできるのにSQLSERV...
-
sqlserverでUPDATEできません
-
AccessテーブルでのF6キーにつ...
-
IDが重複した場合、その他のデ...
-
MAX値を条件にデータを取得する...
-
sqlserverで対象のレコードを削...
-
「マスタ」と「テーブル」の違...
-
3つ以上のテーブルをUNIONする...
-
SI Object Browserのテーブルス...
-
SELECT時の行ロックの必要性に...
-
ACCESS2007 フォーム 「バリア...
-
ビューで引数を使いたい
-
データの二重表示の原因
-
IDENTITY列
-
accessのエクスポートエラーに...
-
Access VBA [リモートサーバー...
-
主キーの変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのSQLで、NULLかNULLでな...
-
オラクルではできるのにSQLSERV...
-
sqlserverで集計結果をUPDATEし...
-
ACCESSで複数テーブルを結合し...
-
アクセス 日付抽出(年月のみ)...
-
更新クエリでキー違反
-
違いを教えてください
-
sqlplusでバックスペースが効か...
-
sqlserverで同一キー単位で金額...
-
シャープレジスター エラーコード
-
Access2000へのインポートエラー
-
accessでのリンクテーブルの更新
-
男性に質問です。
-
AccessのSQLで、FROM句の構文エ...
-
SQL injectionに対する脆弱性
-
集計処理について
-
プライマリーキーで同じ値をUPD...
-
sqlserverで対象のレコードを削...
-
キーの2文字目を無視してひもづ...
-
アクセス97のクエリーで、年月...
おすすめ情報