我正在為我在 Excel 中遇到的問題尋找解決方案。這是我的簡化表格:每筆交易都有一個唯一的 ID,但更多的人可以為一次交易做出貢獻。“名稱”和“銷售份額(%)”列顯示了有多少人做出了貢獻以及他們的百分比是多少。
Sale_ID | 姓名 | 銷售額占比(%) |
---|---|---|
1 | 人甲 | 100 |
2 | 乙人 | 100 |
3 | 人甲 | 30 |
3 | C人 | 70 |
現在我想在我的表中添加一列,顯示每個 Sales_ID 的銷售百分比份額最高的人的姓名。像這樣:
Sale_ID | 姓名 | 銷售額占比(%) | 最高銷售額 |
---|---|---|---|
1 | 人甲 | 100 | 人甲 |
2 | 乙人 | 100 | 乙人 |
3 | 人甲 | 30 | C人 |
3 | C人 | 70 | C人 |
因此,當多人貢獻時,新列僅顯示價值最高的列。
我希望有人可以幫助我,在此先感謝!
uj5u.com熱心網友回復:
你可以在 cell 上試??試這個D2
:
=LET(maxSales, MAXIFS(C2:C5,A2:A5,A2:A5),
INDEX(B2:B5, XMATCH(A2:A5&maxSales,A2:A5&C2:C5)))
或者只是洗掉LET
因為maxSales
只使用一次:
=INDEX(B2:B5, XMATCH(A2:A5&MAXIFS(C2:C5,A2:A5,A2:A5),A2:A5&C2:C5))
在單元格上E2
,我通過以下方式提供了另一個解決方案MAP/XLOOKUP
:
=LET(maxSales, MAXIFS(C2:C5,A2:A5,A2:A5),
MAP(A2:A5, maxSales, LAMBDA(a,b, XLOOKUP(a&b, A2:A5&C2:C5, B2:B5))))
同樣沒有LET
:
=MAP(A2:A5, MAXIFS(C2:C5,A2:A5,A2:A5),
LAMBDA(a,b, XLOOKUP(a&b, A2:A5&C2:C5, B2:B5)))
這是輸出:
解釋
這里的訣竅是確定每個組的最大銷售份額,這可以通過MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
. max_range
和引數的大小和形狀criteria_rangeN
必須相同。
MAXIFS(C2:C5,A2:A5,A2:A5)
它產生以下輸出:
最大銷售額 |
---|
100 |
100 |
70 |
70 |
MAXIFS
將提供與 相同大小的輸出criteria1
,因此它為每一行回傳每個Sale_ID列值對應的最大銷售額。
它是等價于以下公式的陣列版本,將其向下擴展:
MAXIFS($C$2:$C$5,$A$2:$A$5,A2)
INDEX/XMATCH
解決方案
擁有最大Shares of sales的陣列,我們只需要確定行位置 viaXMATCH
即可回傳相應的B2:B5
單元格 via INDEX
。我們使用連接 ( &
) 來考慮多個要查找的標準作為XMATCH
輸入引數的一部分。
MAP/XLOOKUP
解決方案
我們用于查找前兩個輸入引數中每行MAP
的每對值 ( a
, ),其中是為該組找到的最大值,并回傳相應的Name列值。為了根據附加條件進行查找,我們在前兩個輸入引數中使用連接 ( ) 。b
MAP
&
XLOOKUP
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/518317.html
標籤:擅长
上一篇:EXCEL資料透視表