Excel:如何为唯一组合分配值/检查大型数据集中的唯一组合

Posted

技术标签:

【中文标题】Excel:如何为唯一组合分配值/检查大型数据集中的唯一组合【英文标题】:Excel: How to assign values to unique combinations/check for unique combinations in large data sets 【发布时间】:2020-01-28 14:23:21 【问题描述】:

我正在分析 Excel 报告中的销售数据。每行代表一种已售出的产品。

ticket          product 
20190101203045  Eggs
20190101203045  Pancakes
20190101203045  Happy meal
20190101203045  Coca-Cola
20190101203045  Orange juice
20190102144525  All-Bran cereal
20190102144525  Fruit
20190102144526  Lemonade

我已成功将所有具有相同票证的产品串联起来,并将它们分成列:

20190101203045,Eggs,Pancakes,Happy meal,Coca-Cola,Orange juice
20190102144525,All-Bran cereal,Fruit
20190102144526,Lemonade

为了测试独特的组合(无特定顺序),我使用了一种简单有效的方法,为每个单独的值(鸡蛋、煎饼, 快乐的大餐, ...) 这样每个独特的组合在将它们分配的值相加时都会产生一个独特的值,例如:

20190101203045,1,2,4,8,16       = 31  (only this combination will result in 31)
20190102144525,32,64            = 96  (only this combination will result in 96)
20190102144526,128              = 128 (only this combination will result in 128)

这对少量值非常有效,我只需对这些值求和并搜索重复项,但我正在分析的文件可能有多达 2000 个不同的值(产品),因此这种方法不再适用(数字变大)。

还有其他方法,例如使用公式,但工作表有数千行(处理太多),所以我正在寻找更有创意、更有效的解决方案。

感谢任何帮助

【问题讨论】:

在比较之前对产品进行排序。 我用来连接的两个公式(将值放在一行中)要求数据按 A 列(票证)排序。我可以先按 A 列(票证)排序,然后再按 B 列(产品)排序,但我看不出它有什么帮助。 嗯? 20190101203045,Eggs,Pancakes,Happy meal,Coca-Cola,Orange juice 看起来好像产品列表没有排序。 对不起,我现在明白你的建议了:如果我先按 A 列排序,然后按 B 列排序(自定义过滤),然后应用公式进行连接,我应该最终得到匹配行,无论项目在原始数据集中显示的顺序如何。谢谢,这肯定会有所帮助! 【参考方案1】:

根据您的方法描述,我相信您可以使用 Power Query 轻松完成此操作,但可能需要一些计算时间。

试着想象一下……

加载您的数据(2 列:票号、项目)

按列票号透视

移除列票号

删除重复行

添加新的索引列,称之为 Unique Sales

现在你已经完成了。每一行都是一个独特的组合。

(编辑) 最初建议将反透视作为最后一步(哎呀)不要这样做。

【讨论】:

感谢 ProfoundlyOblivious,您使用索引列和删除重复项的想法以及 Ron Rosenfeld 的建议完美运行!

以上是关于Excel:如何为唯一组合分配值/检查大型数据集中的唯一组合的主要内容,如果未能解决你的问题,请参考以下文章

如果没有插入值,如何为 SQL Server 中的列字段分配唯一值?

EXCEL:计算唯一值的组合

如何为 Oracle 中的列组合赋予唯一约束?

如何为 pandas 数据框中的不同组分配唯一 ID?

如何为 Spark RDD 中的元素分配唯一的连续编号

如何处理数据集中的空白单元格