我更喜欢Access中的解决方案,但它不是Excel,我已经调查了两个,但我很难找到解决方案。情况如下: - 在Access中 - 与唯一键链接的7个表。每个表都有一个邮政编码,我需要找出有多少重复的邮政编码。没有铅邮政编码可供比较。例如: -
RM9 6BG,RM9 6BG,RM10 9PL,RM9 6BG,RM9 6SR,RM9 6BG,RM9 6SR
结果将是: -
RM9 6BG = 4 RM10 9PL = 1 RM9 6SR = 2
如果发生这种情况,有时表格对邮政编码没有任何价值我不希望这些计为重复分组/计数的一部分。 有超过3000条记录。 请不要评论规范化......
在Excel中等效: - “查找重复项”的条件格式在第一行有效,但这只突出显示它们不会对它们进行分组和计数,还需要将其添加到30多万行?我尝试了各种CountIf但没有成功。
欢迎所有解决方案,包括VBA。
答案 0 :(得分:0)
如果没有完全掌握你的桌面结构(即字段名称/表名等等),我认为你要做到这一点的唯一方法就是做到以下几点:
确保您拥有每条记录的主键/唯一ID。这可能需要您将自动编号字段放入表中。
为每条记录执行转置查询,以便您从以下地址开始:
UID ...... PC1 PC2 .............. ................ PC3 ....... ......... PC4 ...............等....
1 .......... RM9 6BG ..... RM9 6BG ....... RM10 9PL ....... RM9 6SR
到
UID PostalCode
1 RM9 6BG
1 RM9 6BG
1 RM10 9PL
1 RM9 6SR
对每个Transpose执行UNION查询(我打赌你必须在循环中执行此操作,因为你无法让SQL字符串足够长时间来完成
对结果执行GROUP BY查询,并为每个UID计算每个邮政编码。
我不知道如何以更优雅的方式做到这一点。我的意思是,它并不都是可怕的,因为你可以在循环中执行每一步(对于X = 1到30000,选择*其中UID = X等等)然后只需将结果附加到表中而不是实际进行UNION查询。然后,结果表上的GROUP BY查询将获得您的数字。
答案 1 :(得分:0)
@Jonny Bones感谢您抽出时间,我提出了以下解决方案: - 我连续创建了一个包含所有字段(Postcode)的字符串,然后使用了一个函数来计算字符串(Postcode)出现在该字符串中的次数。