从Excel工作表中提取唯一组合

时间:2016-11-18 16:00:23

标签: excel vba unique

我正在寻找一种从多个具有多列的Excel工作表中提取所有独特组合的方法。 E.g:

#no.   | fruit    | city    | year    | something else
1      | apple    | London  | 2015    | some text
2      | banana   | London  | 1999    | no text
3      | apple    | Oxford  | 1895    | some text
4      | banana   | London  | 1999    | no text

如何在Excel或VBA中使用任何函数获取所有唯一行的列表(当然除了第1列)?优选地,它是类似脚本的方式,因为这些表包含超过6000行不同的信息。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您只想使用公式,这里有一些简单的步骤:

1)在表格末尾添加列。在本专栏中,将所有行汇总为:

import os

path = 'dir/'
os.mkdir('dir/all_files')

extensions = ['.csv']
for folder, _, filenames in os.walk(path):
    for filename in filenames:
        if folder == path or folder == os.path.join(path, 'all_files'):
            continue
        folder = folder.strip(path)
        extension = os.path.splitext(os.path.splitext(filename)[0])[-1].lower()
        if extension in extensions:
            infilename = os.path.join(path, folder, filename)
            newname = os.path.join(path, 'all_files', "{}-{}".format(folder.strip('./'), filename.replace('.csv.bz2', '.csv')))
            os.rename(infilename, newname)

2)然后添加另一列来计算和计算出版物的出现次数。放入#no. | fruit | city | year | something else| 1 | apple | London | 2015 | some text |=B2&C2&D2&E2 2 | banana | London | 1999 | no text | 3 | apple | Oxford | 1895 | some text | 4 | banana | London | 1999 | no text | 公式并填写:

COUNTIF()

如果您使用条件= 1 过滤最后一列,则可以获得所有唯一行。