如何根据 Excel 中的多个条件从列中提取所有唯一值

How to extract all unique values from a column based on multiple criterion in Excel

我试图从基于 vlookup 类型匹配的列中获取所有不同值的列表。

例如:

Sheet 1:

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

System A       
System B
System C
System D

Sheet 2(所有数据所在)

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

我希望能够从 colA in sheet 1 in colA of Sheet 2 中搜索健康系统的名称...并根据它是 PMR 还是 EMR。 ..return 来自 Vendor 列的唯一值的数量进入适当列下 sheet 1 中的一个单元格。

SO 在系统 A 的 Sheet 1 中的 EMR 列下,我想要来自 sheet 2 中供应商列的不同值,其技术 ID 为系统的 "EMR" A.

在这种情况下,它将是:ClinicA、ClinicE

如有任何帮助,我们将不胜感激!

仅使用 excel 公式无法做到这一点,您需要 VBA 解决方案。如果您的 Sheet1 包含如下数据,

Sheet2,

试试这个简单的 VBA 代码,

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

你的输出是,

如果您有新的 TEXTJOIN 函数,请使用 CSE 将其作为数组公式输入。

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

向右向下填充。

imgur 现在似乎坏了。 http://imgur.com/a/xCqQb

如果您无法访问较新的 worksheet function search this site for responses to questions with the 作为替代品。