确定被Excel或Power Pivot中的另一列分隔时的模式

确定被Excel或Power Pivot中的另一列分隔时的模式,excel,excel-formula,powerbi,powerpivot,Excel,Excel Formula,Powerbi,Powerpivot,我想回答的问题是,当产品X与产品Y一起销售时,最常见的产品X数量是多少?如果每个订单上只有一个产品Y,我可以使用Excel的MODE.SNGL函数。但是,有些订单有超过1个产品Y。这意味着产品X必须除以产品Y,结果需要按产品Y的数量计算,才能得到实际模式。下面是一个非常简单的例子: Order # | Product Y | Product X 111 | 1 | 2 123 | 2 | 4 145

我想回答的问题是,当产品X与产品Y一起销售时,最常见的产品X数量是多少?如果每个订单上只有一个产品Y,我可以使用Excel的MODE.SNGL函数。但是,有些订单有超过1个产品Y。这意味着产品X必须除以产品Y,结果需要按产品Y的数量计算,才能得到实际模式。下面是一个非常简单的例子:

Order #  |  Product Y  |  Product X  
 111     |    1        |     2  
 123     |    2        |     4  
 145     |    1        |     1  
 354     |    1        |     1
在本例中,产品X模式的正确答案为2。订单123有2个产品Y和4个产品X,因此在模式计算中,这应计为2个2。当与订单111结合时,这就形成了三个2和我们的模式


Excel或PowerPivot中是否有一个公式可用于获得此结果?

工作表公式
=MODE.SNGL(OrderTable[Product X]/OrderTable[Product Y])
可以工作

订正答复 让我收回上面的答案。OP寻找的是“产品X/产品Y”模式,将每个产品Y视为观察,而不是每个订单

因此,这里是计算所需数字的DAX度量

Most Frequent Number Of X Per Y = 
VAR OrdersXdivY = ADDCOLUMNS(
    Orders,
    "@X / Y", DIVIDE(Orders[Product X], Orders[Product Y])
)
VAR SumByXdivY = SUMMARIZE(
    OrdersXdivY,
    [@X / Y],
    "@Sum Y", SUM(Orders[Product Y])
)
RETURN SUMX(TOPN(1, SumByXdivY, [@Sum Y], DESC), [@X / Y])

常规公式可能如下所示:

=INDEX(C2:C5/B2:B5,MATCH(MAX(MMULT(TRANSPOSE(B2:B5)*(C2:C5/B2:B5=TRANSPOSE(C2:C5)/TRANSPOSE(B2:B5)),ROW(B2:B5)^0)),
MMULT(TRANSPOSE(B2:B5)*(C2:C5/B2:B5=TRANSPOSE(C2:C5)/TRANSPOSE(B2:B5)),ROW(B2:B5)^0),0))
是数组公式,必须使用CtrlShiftCenter输入


到目前为止您尝试了什么,以及您希望如何显示输出?不幸的是,它无法工作。如果您将以下内容添加到Y:
10,2
和X:
10,4
,您的公式将返回
2
,但正确答案应该是
1
,它有12次出现,而
2
只有5次出现。@TerryW感谢您的评论。我更新了答案。