我正在尝试根据vlookup类型匹配从列中获取所有不同值的列表。
例如:
表1:
(colA) (colB) (colC)
Health System Name EMR PMR
System A
System B
System C
System D
表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
我希望能够从工作表2的colA中的工作表1中的colA搜索健康系统的名称...并根据它是PMR还是EMR ...返回唯一值的数量供应商列在相应列下的工作表1中的一个单元格中。
在系统A的工作表1的EMR列下,我想要表2中供应商列的不同值,系统A的技术ID为“EMR”。
在这种情况下,它将是:ClinicA,ClinicE
非常感谢任何帮助!
答案 0 :(得分:0)
您只能使用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
您的输出将是,
答案 1 :(得分:0)
如果你有新的TEXTJOIN函数,那么输入它作为CSE的数组公式。
=TEXTJOIN(", ", TRUE, IF(Sheet2!$A$2:$A$11=$F7, IF(Sheet2!$B$2:$B$11=G$6, Sheet2!$C$2:$C$11, ""), ""))
向右和向下填充。
imgur现在似乎已经破裂了。 http://imgur.com/a/xCqQb