Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 字典键中的重复项。合并字典值_Excel_Vba - Fatal编程技术网

Excel 字典键中的重复项。合并字典值

Excel 字典键中的重复项。合并字典值,excel,vba,Excel,Vba,是否可以在字典键中找到所有重复项,从键中提取值,并保存一个键和所有值的组合 比如说。请看下面的数据表。如果我想将其保存为一个字典,其中列“a”作为键,列“B”作为值: 是否可以删除重复项,以便我们只有一个值为=Thank的“A”键;你;对于帮助“”您可以将集合(或字典)对象或数组作为项存储在字典中 比如: 编辑:以打印词典数据 debug.print输出 A Thank A You A For A

是否可以在字典键中找到所有重复项,从键中提取值,并保存一个键和所有值的组合

比如说。请看下面的数据表。如果我想将其保存为一个字典,其中列“a”作为键,列“B”作为值:


是否可以删除重复项,以便我们只有一个值为=Thank的“A”键;你;对于帮助“”

您可以将集合(或字典)对象或数组作为项存储在字典中

比如:

编辑:以打印词典数据

debug.print输出

A             Thank
A             You
A             For
A             Helping
B             Car
C             Bus
D             Late
E             Damage
将为您提供每把钥匙附带的所有项目的集合


另一方面,要连接与唯一键关联的所有值,在Excel Office365中,可以使用公式进行连接

根据您的数据:

E2: =UNIQUE($A$2:$A$9)
F2: =TEXTJOIN(";",TRUE,FILTER($B$2:$B$9,($A$2:$A$9=E2)))
选择F2并根据需要填写

您可以:

1.-如果您的输入不唯一,则将此公式放在每行的第三列中,以获得true或false:

=COUNTIF(A:A;A2)>1 =COUNTIF(A:A;A3)>1 …对于每一行,依此类推

2.-然后你有(verdadero=true,Falso=false)

3.-然后您可以过滤第3列中的真实值:

并生成字符串,但不能使用A作为键,因为键在字典中不能重复。您需要使用其他数据结构


如果需要自动化,所有步骤都可以通过代码重复,但是用户可以更快地完成。

我认为在
字典中不能有重复的键。
我得到一个错误。Dim D As Dictionary=编译错误:未定义用户定义的类型。这与您所问的问题不同。搜索e和早期绑定和后期绑定。我使用了早期绑定,这意味着我设置了对Microsoft脚本运行时的引用。您可以自己设置引用,也可以重写声明以使用后期绑定。
Dim D as Object;set D=CreateObject(“Scripting.Dictionary”)
或类似的东西。我认为代码正在工作。但我不太明白如何访问此集合。例如,如何调试。打印它?@lass9509只需将
D(“密钥”)
视为
集合。您可以对每个..
使用
进行迭代,或者,如果您希望
D(“a”)中的第一个元素
,您将使用
debug.print D(“A”)(1)
@lass9509我建议您将其作为新问题发布。此外,如果您有O365,我将编辑我的答案,为您的问题提供公式解决方案
E2: =UNIQUE($A$2:$A$9)
F2: =TEXTJOIN(";",TRUE,FILTER($B$2:$B$9,($A$2:$A$9=E2)))