我附上了原始表格的螢屏截圖和所需的結果。
我想要的基本上是根據單個標準(CustomerID)從excel表中回傳記錄,根據另一個標準(日期)對結果進行排序,從原始表中附加不連續的列,并從過濾后的選擇中只回傳n行(在這種情況下最后3)?
有沒有辦法在不使用輔助公式或輔助表(包括 RANK、LARGE 等)的情況下一步完成?
謝謝

uj5u.com熱心網友回復:
已發布該解決方案,因為它適用于 OP

你可以嘗試這樣的事情,如下面的截圖所示,

? 單元格中使用的公式J3
=LET(_table,Table1[#All],
_headers,TAKE(_table,1),
_customerwise,FILTER(DROP(_table,1),DROP(INDEX(_table,,1),1)=K2,""),
_lastthree,TAKE(_customerwise,-3),
_requiredcols,CHOOSECOLS(_lastthree,1,4,6,7),
VSTACK(CHOOSECOLS(_headers,1,4,6,7),SORT(_requiredcols,2,-1)))
編輯,在評論中發布的那個。

? 單元格中的公式J9
=CHOOSECOLS(SORT(TAKE(FILTER(Table1,K2=Table1[Customer ID]),-3),4,-1),1,4,6,7)
從字面上看,給定的公式可以轉換為 aLAMBDA()以創建具有友好名稱的自定義、可重復使用的公式。

? 單元格中使用的公式J3
=LISTDATA(Table1[#All],K2)
LISTDATA()在名稱管理器中定義的具有友好名稱的自定義和可重用公式在哪里,使用LAMBDA()
=LAMBDA(array,criteria,
LET(_table,array,
_headers,TAKE(_table,1),
_customerwise,FILTER(DROP(_table,1),DROP(INDEX(_table,,1),1)=criteria,""),
_lastthree,TAKE(_customerwise,-3),
_requiredcols,CHOOSECOLS(_lastthree,1,4,6,7),
VSTACK(CHOOSECOLS(_headers,1,4,6,7),SORT(_requiredcols,2,-1))))(B3:H12,K2)


僅采用陣列和條件來為您提供所需的輸出。
=LISTDATA(array,crietria)
uj5u.com熱心網友回復:
根據您的條件,您可以在以下公式中的 O365 下使用以下J2內容:
=LET(input, TB_Inv, customerId, I2, customers, TB_Inv[Customer],
TAKE(CHOOSECOLS(SORT(FILTER(TB_Inv, customers=customerId),4,-1),1,4,6,7),3)
)
這是輸出:

它按日期降序排序,然后從最終輸出中獲取前三行。
如果要包含標題,則:
=LET(input, TB_Inv, customerId, I2, customers, TB_Inv[Customer],
result, TAKE(CHOOSECOLS(SORT(FILTER(TB_Inv,
customers=customerId),4,-1),1,4,6,7),3),
VSTACK(CHOOSECOLS(TB_Inv[#Headers],1,4,6,7), result)
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/532742.html
標籤:擅长excel公式
上一篇:如何將資料從RecyclerView的點擊監聽器傳遞到另一個片段?
下一篇:將文本與重音進行比較
