• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel 2つのDatabaseから一致した結果)

Excelで複数のデータベースから一致結果を取得する方法

このQ&Aのポイント
  • Excelで複数のデータベースから一致した結果を取得する方法を教えてください。
  • VLOOKUP関数を使えない場合や、重複データが多い場合でも効率的に一致結果を取得する方法を教えてください。
  • オートフィルを使って複数の行に対応する方法も教えてください。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 関数での方法は回答済みなので、VBAでの一例です。 標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() 'この行から Dim i As Long, lastRow1 As Long, lastRow2 As Long Dim c As Range, wS As Worksheet Set wS = Worksheets("Sheet2") Application.ScreenUpdating = False lastRow2 = wS.Cells(Rows.Count, "J").End(xlUp).Row If lastRow2 > 1 Then Range(wS.Cells(2, "Y"), wS.Cells(lastRow2, "Z")).ClearContents End If wS.Range("A:A").Insert With Range(wS.Cells(2, "A"), wS.Cells(lastRow2, "A")) .Formula = "=K2&""_""&Q2&""_""&T2" .Value = .Value End With With Worksheets("Sheet1") lastRow1 = .Cells(Rows.Count, "B").End(xlUp).Row .Range("A:A").Insert With Range(.Cells(2, "A"), .Cells(lastRow1, "A")) .Formula = "=C2&""_""&L2&""_""&T2" .Value = .Value End With For i = 2 To lastRow2 Set c = .Range("A:A").Find(what:=wS.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then wS.Cells(i, "Z") = "×" Else wS.Cells(i, "Z") = "○" wS.Cells(i, "AA") = .Cells(c.Row, "Y") End If Next i .Range("A:A").Delete wS.Range("A:A").Delete End With Application.ScreenUpdating = True End Sub 'この行まで ※ 関数でないので、データ変更があるたびにマクロを実行する必要があります。 ※ 作業列を使用し関数でやる方法をコードにしただけです。m(_ _)m

hanakochama
質問者

お礼

ありがとうございます! 本当に助かりました。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

以下の数式を入力して下方向にオートフィルしてください。 Y2セル IF(COUNTIFS(Sheet1!B:B,J2,Sheet1!K:K,P2,Sheet1!S:S,S2),"○","×") Z2セル =IF(Y2="○",INDEX(Sheet1!$X$2:$X$1000,MATCH(J2&P2&S2,INDEX(Sheet1!$B$2:$B$1000&Sheet1!$K$2:$K$100&Sheet1!$S$2:$S$1000,),0)),"")

hanakochama
質問者

お礼

ありがとうございます! 本当に助かりました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

Y2に =IF(COUNTIFS(Sheet1!B:B,J2,Sheet1!K:K,P2,Sheet1!S:S,S2),"○","×") 以下コピー とかで。

hanakochama
質問者

お礼

ありがとうございます! 助かりました。

関連するQ&A

専門家に質問してみよう