質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

561閲覧

VBAで転記(IDで絞込みし重複がないように全ての結果を転記先の1つのセルに入力する方法を教えてください)

takanakata

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/07/15 10:47

編集2021/07/15 11:14

初めて質問させていただきます。
初心者のため質問内容に不足があったら申し訳ございません。

・やりたい事
別ブックへの転記
元データ
A列:顧客ID(重複あり)
B列:請求コード(重複あり)
C列:商品コード(重複あり) 
の元データがあります(実際には100列程あり、上記の抽出したいデータが飛び飛びの列になっていますが、便宜上A-C列としました)。
Enumで配列を作り、必要な列だけ元データの上から転記していくつくりにしています。
その際に
A2セルに「A1001」と入力されているとして、
顧客IDがA1001の全ての請求コード(B2001,B2004,B2001,B2009)を抽出し、転記先の請求コード列の1つのセル内に重複がないように「B2001/B2004/B2009」と転記する方法をご教示ください。
C列も同様の処理です。
単純な最終行までの転記は自身で出来たのですが、上記の場合どのように実現できるのか考え方も思い付かずお手上げ状態です。
これまでは手作業でA2の顧客IDをコピーしフィルターをかけて絞り込みして請求IDを目検で転記先にコピペする、それをA3以下最終行まで手作業で繰り返すやり方をしていたようです。

もし説明不足の部分がありましたら、
大変申し訳ないのですが御指摘いただけますと幸いです。
何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

出力の仕方が意図と違ってたらすみません。

VBA

1Enum col 2 A = 1 3 B = 2 4 C = 3 5End Enum 6 7Sub sample() 8 Dim moto As Worksheet 9 Set moto = Worksheets(1) 10 Dim saki As Worksheet 11 Set saki = Worksheets(2) 12 13 Dim lastRow As Long 14 lastRow = moto.Cells(moto.Rows.Count, col.A).End(xlUp).Row 15 16 Dim sakiA As String, sakiB As Range, sakiC As Range 17 sakiA = saki.Range("A2") 18 Set sakiB = saki.Columns(col.B) 19 Set sakiC = saki.Columns(col.C) 20 21 Dim r, i, motoA As String, motoB As String, motoC As String 22 r = 2 23 For i = 2 To lastRow 24 motoA = moto.Cells(i, col.A) 25 motoB = moto.Cells(i, col.B) 26 If motoA = sakiA And WorksheetFunction.CountIf(sakiB, motoB) = 0 Then sakiB(r, 1) = motoB 27 r = r + 1 28 Next 29 30 r = 2 31 For i = 2 To lastRow 32 motoA = moto.Cells(i, col.A) 33 motoC = moto.Cells(i, col.C) 34 If motoA = sakiA And WorksheetFunction.CountIf(sakiC, motoC) = 0 Then sakiC(r, 1) = motoC 35 r = r + 1 36 Next 37End Sub 38

投稿2021/07/15 12:53

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問