不同值的Excel列表
我在a列有一张表,上面有一封客户电子邮件,在B列有他们购买的产品——大约有6万行 数据不同值的Excel列表,excel,excel-formula,Excel,Excel Formula,我在a列有一张表,上面有一封客户电子邮件,在B列有他们购买的产品——大约有6万行 数据 ------------------------------------------------------ Email | Product | Time | ------------------------------------------------------ nayena@gmail.com | P1 | 27/02/2
------------------------------------------------------
Email | Product | Time |
------------------------------------------------------
nayena@gmail.com | P1 | 27/02/2020 18:09:41 |
yenaye@hotmail.com | P2 | 28/02/2020 17:09:32 |
nayena@gmail.com | P1 | 29/02/2020 14:05:46 |
yenaye@hotmail.com | P1 | 29/02/2020 13:02:04 |
yenaye@hotmail.com | P2 | 29/02/2020 20:05:21 |
我想写两个新专栏
一个应该是客户销售了多少不同的产品。
另一个应该是这些不同产品的列表。(最好按日期排序,将在另一列中)预期结果:
期望的结果
---------------------------------------------------------------------
Email | Product | Time | Orders | n |
---------------------------------------------------------------------
nayena@gmail.com | P1 | 27/02/2020 18:09:41 | P1 | 1
yenaye@hotmail.com | P2 | 28/02/2020 17:09:32 | P1|P2 | 2
nayena@gmail.com | P1 | 29/02/2020 14:05:46 | P1 | 1
yenaye@hotmail.com | P1 | 29/02/2020 13:02:04 | P1|P2 | 2
yenaye@hotmail.com | P2 | 29/02/2020 20:05:21 | P1|P2 | 2
我试过类似的方法
=FILTER(B:B,A:A=A2)
=AGGREGATE(3,0,FILTER(B:B,A:A=A2))
但它会降低数值,溢出到下面的单元格中。而且它不具有唯一的值。
这在Python中是一个相当标准的操作,但我想知道如何在excel中以尽可能简单的方式实现这一点——我想这应该是相当直接的
我试过类似的方法
=FILTER(B:B,A:A=A2)
=AGGREGATE(3,0,FILTER(B:B,A:A=A2))
但是我不清楚如何将
过滤器
传递到聚合
,如果您希望订单按日期排序,则无法获得所需输出的内容
您的一位客户将P2
作为最早的和最新的,因此无论您以何种方式排序,它都将显示为P2 | P1
下面的订单
公式按日期排序。(不需要在n
公式中排序)
要复制所需的结果,您必须按产品排序:
Orders: =TEXTJOIN("|",TRUE,UNIQUE(INDEX(FILTER(SORT($A$2:$C$6,2,1 ),A2 = INDEX(SORT($A$2:$C$6,2,1 ),0,1)),0,2)))
注意:
- 可以使用整列引用,但这会显著增加计算时间
- 电源查询解决方案也很容易实现,但具体取决于您希望结果的显示方式
P2
作为最早的和最新的,因此无论您以何种方式排序,它都将显示为P2 | P1
下面的订单
公式按日期排序。(不需要在n
公式中排序)
要复制所需的结果,您必须按产品排序:
Orders: =TEXTJOIN("|",TRUE,UNIQUE(INDEX(FILTER(SORT($A$2:$C$6,2,1 ),A2 = INDEX(SORT($A$2:$C$6,2,1 ),0,1)),0,2)))
注意:
- 可以使用整列引用,但这会显著增加计算时间
- 电源查询解决方案也很容易实现,但具体取决于您希望结果的显示方式
UNIQUE()
,如果您想订购,请查看SORTYBY()
。如果您有一个小的降价示例数据表,我们可以帮助您了解更多细节。啊,正确-执行UNIQUE(FILTER(B:B,a:a=A2))
工作,但当有多个时,我得到#溢出代码>-理想情况下,我希望它类似于产品1 |产品2
。我将尝试添加降价现在添加一些降价-希望这是明确的!您必须查看UNIQUE()
,如果您想订购,请查看SORTYBY()
。如果您有一个小的降价示例数据表,我们可以帮助您了解更多细节。啊,正确-执行UNIQUE(FILTER(B:B,a:a=A2))
工作,但当有多个时,我得到#溢出代码>-理想情况下,我希望它类似于产品1 |产品2
。我将尝试添加降价现在添加一些降价-希望这是明确的!