I use 2010 but I am creating this for compatibility with 2003.
Add the following code to your work, using Alt + F11:
Function ArrayUnion(ParamArray Arg() As Variant) As Variant
' Code: Juan Pablo González
' Spec: Aladin Akyurek
' May 4, 2003
' Ref:
TinyURL.com - shorten that long URL into a tiny URL
Dim TempUnion() As Variant
Dim i As Long, Itm As Variant, Ctr As Long
For i = LBound(Arg) To UBound(Arg)
Arg(i) = Arg(i)
If IsArray(Arg(i)) Then
For Each Itm In Arg(i)
Ctr = Ctr + 1
ReDim Preserve TempUnion(1 To Ctr) As Variant
TempUnion(Ctr) = Itm
Next Itm
Else
Ctr = Ctr + 1
ReDim Preserve TempUnion(1 To Ctr) As Variant
TempUnion(Ctr) = Arg(i)
End If
Next i
ArrayUnion = TempUnion
End Function
Given the following data on
Sheet1 (otherwise, adjust to suit the sheet name)...
[TABLE="width: 410"]
<colgroup><col style="width: 48pt;" span="5" width="64"> <col style="width: 170pt; mso-width-source: userset; mso-width-alt: 8049;" width="226"> <tbody>[TR]
[TD="class: xl66, width: 64, bgcolor: white"]
X[/TD]
[TD="class: xl66, width: 64, bgcolor: white"]
Value[/TD]
[TD="class: xl66, width: 64, bgcolor: white"]
Y[/TD]
[TD="class: xl66, width: 64, bgcolor: white"]
Value[/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl66, width: 226, bgcolor: white"]
Distinct Count[/TD]
[/TR]
[TR]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
700[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
4[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
710[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
4[/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 226, bgcolor: white, align: right"]
7[/TD]
[/TR]
[TR]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
705[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
4[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
750[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
2[/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl66, width: 226, bgcolor: white"]
Distinct List[/TD]
[/TR]
[TR]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
710[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
4[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
756[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
3[/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 226, bgcolor: white, align: right"]
700[/TD]
[/TR]
[TR]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
750[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
4[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
710[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
5[/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 226, bgcolor: white, align: right"]
705[/TD]
[/TR]
[TR]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
750[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
2[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
711[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
4[/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 226, bgcolor: white, align: right"]
710[/TD]
[/TR]
[TR]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
750[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
3[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
702[/TD]
[TD="class: xl65, width: 64, bgcolor: white, align: right"]
2[/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 226, bgcolor: white, align: right"]
750[/TD]
[/TR]
[TR]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 226, bgcolor: white, align: right"]
756[/TD]
[/TR]
[TR]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 226, bgcolor: white, align: right"]
711[/TD]
[/TR]
[TR]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 64, bgcolor: white"] [/TD]
[TD="class: xl65, width: 226, bgcolor: white, align: right"]
702[/TD]
[/TR]
</tbody>[/TABLE]
Define
List using Insert | Name | Define (or Formulas | Name Manager) as referring to:
Rich (BB code):
=arrayunion(Sheet1!$A$2:$A$7,Sheet1!$C$2:$C$7)
Define
Ivec as referring to:
Rich (BB code):
=ROW(INDIRECT("1:"&COLUMNS(List)))
F2, control+shift+enter, not just enter:
Rich (BB code):
=SUM(IF(FREQUENCY(IF(List<>"",MATCH("~"&List,List&"",0)),Ivec),1))
F4, control+shift+enter and copy down:
Rich (BB code):
=IF(ROWS($F$4:F4)<=$F$2,
INDEX(List,SMALL(IF(FREQUENCY(IF(List<>"",
MATCH("~"&List,List&"",0)),Ivec),Ivec),ROWS($F$4:F4))),"")