2017-06-04 5 views
-2

Ich versuche, eine Liste aller verschiedenen Werte aus einer Spalte basierend auf einem Vlookup-Typ zu erhalten.So extrahieren Sie alle eindeutigen Werte aus einer Spalte basierend auf mehreren Kriterien in Excel

Zum Beispiel:

Blatt 1:

 (colA)   (colB) (colC) 
Health System Name EMR  PMR 

System A  
System B 
System C 
System D 

Blatt 2 (wo alle Daten)

Healthy System Name  Tech ID  Vendor 

System A     PMR   ClinicA 
System A     EMR   ClinicE 
System A     EMR   ClinicA 
System B     EMR   ClinicB 
System B     PMR   ClinicC 
System C     PMR   ClinicA 
System C     PMR   ClinicB 
System C     EMR   ClinicD 
System C     PMR   ClinicD 
System C     EMR   ClinicG 

Ich möchte den Namen des gesunden Systems suchen können aus Spalte in Blatt 1 in Spalte von Blatt 2 ... und basierend darauf, ob es sich um ein PMR oder ein EMR handelt ... geben Sie die Anzahl der eindeutigen Werte aus der Spalte Lieferant in eine Zelle in Blatt 1 unter der entsprechenden Spalte ein.

SO unter der EMR-Säule in Blatt 1 für System A, möchte ich die unterschiedlichen Werte des Anbieters Spalte in Blatt 2, die die Tech-ID als „EMR“ für System A.

wäre es in diesem Fall haben sei: ClinicA, ClinicE

Jede Hilfe würde sehr geschätzt werden!

+0

Sie wollen die zwei in einer Zelle? –

+0

@ScottCraner Wäre es möglich, dass es in einer Zelle durch ein Komma getrennt ist? –

+0

Dies wird VBA nehmen. Was hast du probiert? –

Antwort

0

Sie könnten dies nicht nur mit Excel-Formeln und Sie würden eine VBA-Lösung benötigen. Wenn Ihr Sheet1 enthält Daten wie unten,

enter image description here

und Sheet2,

enter image description here

Versuchen Sie diese einfache VBA-Code,

Sub uniqueList() 
Dim i As Long, j As Long, str As String 
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row 
    For j = 2 To Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row 
     If Cells(i, 1) = Sheets("Sheet2").Cells(j, 1) And Cells(1, 2) = Sheets("Sheet2").Cells(j, 2) Then 
      If Cells(i, 2) <> "" Then 
       str = Cells(i, 2) & " , " & Sheets("Sheet2").Cells(j, 3) 
       Cells(i, 2) = str 
      Else 
       Cells(i, 2) = Sheets("Sheet2").Cells(j, 3) 
      End If 
     End If 
     If Cells(i, 1) = Sheets("Sheet2").Cells(j, 1) And Cells(1, 3) = Sheets("Sheet2").Cells(j, 2) Then 
      If Cells(i, 3) <> "" Then 
       str = Cells(i, 3) & " , " & Sheets("Sheet2").Cells(j, 3) 
       Cells(i, 3) = str 
      Else 
       Cells(i, 3) = Sheets("Sheet2").Cells(j, 3) 
      End If 
     End If 
    Next j 
Next i 
End Sub 

Die Ausgabe wäre,

enter image description here

0

Wenn Sie die neue TEXTJOIN-Funktion haben, geben Sie diese als Matrixformel mit CSE ein.

=TEXTJOIN(", ", TRUE, IF(Sheet2!$A$2:$A$11=$F7, IF(Sheet2!$B$2:$B$11=G$6, Sheet2!$C$2:$C$11, ""), "")) 

Füllen Sie nach rechts und nach unten.

imgur scheint jetzt gebrochen. http://imgur.com/a/xCqQb

Wenn Sie keinen Zugriff auf die neuere Arbeitsblattfunktion haben, durchsuchen Sie diese Website nach Antworten auf Fragen mit der für Alternativen.

Verwandte Themen