- ベストアンサー
エクセル 重複数字の書き換えについて
シート1のA列に番号(重複番号あり) B列に項目。シート2のA列に番号(重複番号なし) B列に項目。シート2の順番を正としてシート1のA列重複番号をVBAで書き換えるには、どうしたらよろしいか。 【シート1】 【シート2】 【シート1】 1 りんご 1 バナナ 3 りんご 2 バナナ 2 すいか 1 バナナ 2 バナナ 3 りんご ⇒ 1 バナナ 2 バナナ 1 バナナ 3 すいか 2 すいか
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub CommandButton1_Click() Dim cMax As Integer Dim i As Long On Error Resume Next cMax = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To cMax Cells(i, 1).ClearContents Cells(i, 1).Value = Worksheets("シート2").Cells(Application.WorksheetFunction.Match(Cells(i, 2), Worksheets("シート2").Range("B:B"), 0), 1).Value Next i End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
シート1の項目名でシート2の項目名を引き、見つかった同行の番号を検索したら、しまいではないのか。 結果的にシートの番号列を残すのか上書きするのかあると思うが。 全くVLOOKUP関数(FALSE型)の利用問題ではないか。 ただし番号列が項目列より左列にあるので、同じ項目名がどの行にあるかをMatch関数で見つければ、できる。 同一シートの場合 A B C D E F 1 りんご 1 バナナ 3 りんご 2 バナナ 2 すいか 1 バナナ 2 バナナ 3 りんご 1 バナナ 2 バナナ 1 バナナ 3 すいか 2 すいか F列はB列を持ってくる。=B2など。 E2セルの式は =MATCH($B2,$D$1:$D$4,)-1 下hプkプに式を複写。 結果は上記E列
- aokii
- ベストアンサー率23% (5210/22062)
VBAではなく普通のエクセルですが以下の方法ではいかがでしょう。 シート1のシート名はSheet1、シート2のシート名はSheet2の場合です。 Sheet2のA列とB列のデータを入れ替える→Sheet1のA1セルに以下の式を入れて下にドラッグコピー =VLOOKUP(B1,Sheet2!A:B,2,FALSE)