Vba 使用模糊匹配动态创建数据透视表

Vba 使用模糊匹配动态创建数据透视表,vba,excel,Vba,Excel,所以,我不断地得到新的和不同格式的数据。我正在努力使我的工作标准化数据以便于使用,如果我能够说服有权标准化数据,这个问题就完全没有意义了。在此之前,我有以下问题: 我以各种方式获取数据。有时我的总销售额被称为总销售额。有时折扣前总销售额、折扣前总销售额、总销售额等。折扣、扣除额、免税额等构成另一列。诸如此类。我希望能够做到以下几点: 1) 找出我想要的列, 2) 将这些列转换为数据透视表 对于第1部分,我有两个选择,我想知道是否还有:第一个是使用Microsoft的模糊匹配加载项来帮助我匹配。我

所以,我不断地得到新的和不同格式的数据。我正在努力使我的工作标准化数据以便于使用,如果我能够说服有权标准化数据,这个问题就完全没有意义了。在此之前,我有以下问题:

我以各种方式获取数据。有时我的总销售额被称为总销售额。有时折扣前总销售额、折扣前总销售额、总销售额等。折扣、扣除额、免税额等构成另一列。诸如此类。我希望能够做到以下几点:

1) 找出我想要的列,
2) 将这些列转换为数据透视表

对于第1部分,我有两个选择,我想知道是否还有:第一个是使用Microsoft的模糊匹配加载项来帮助我匹配。我会有一个单独的标签专门用于模糊匹配我需要的每一列。第二种方法是生成一个包含所有变体的长列表,并对每个变体进行测试,直到找到匹配项,分配它,然后继续测试下一个变体

第二部分是将所有这些转化为一个数据透视表——到目前为止,我拥有的资源是和

有更好的方法吗?还有别的办法吗


编辑:稍微好一点的方法-抓取数据列,将它们放在一个表中,并从该表中透视所有内容-它不再需要重新创建透视表,只需要将数据移到上面。

有同样的问题,我混合使用了两种方法

我的数据由一堆被拒绝的x射线图像的日志组成,拒绝原因是一个自由文本字段。我的解决方案是创建一个表,其中第一列包含我想要的输出类别,然后每个后续列包含它的不同变体

例如,行可能有(列1/输出第一个条目):

定位,POS,定位误差,患者定位

请注意,它们彼此都有很大的不同。在模糊匹配的地方——它被用来捕获其他列周围所有较小的差异和拼写错误。当模糊匹配部分确定给定的原因与列的条目匹配时,它将替换为表第1列中相应的所需输出原因。在我的示例中,“Positioning Err”[sic]的原因将与第3列(定位错误)匹配,然后转换为定位

然后根据需要对其余数据重复清洗。这种方法非常有用,并且在帮助标准化我的数据方面相当灵活。它在计算上也比较昂贵,但我想您只需要运行匹配部分一次


至于进行这项工作的实际机制——我使用2010,因此没有内置功能。我在临时工作表上运行模糊匹配代码,直到找到最佳匹配百分比,然后再覆盖实际的源数据。

嘿,我在自由文本问题上也遇到了类似的问题-我会研究正则表达式,它们在自由文本中非常神奇。谢谢,它们在计算上可能更简单。我仍然担心,不知何故,有人会找到一种新的、令人兴奋的方式,把事情说错了,以至于regex无法接受:\