許多Excel報告都包含顯示排序結果的表。通常,這些表是使用“數(shù)據(jù),排序”命令在Excel中手動排序的。但是,如果公式(不是宏)可以自動對數(shù)據(jù)進行排序,則報表將更易于維護和更新。有一個簡單的方法可以做到這一點。但是為了使該方法可靠地工作, 您必須修復RANK函數(shù)的行為。該圖顯示了部分解決方案,并說明了RANK的問題。A,B和G列顯示實際數(shù)據(jù)。為顯示的單元格輸入以下公式,然后根據(jù)需要將公式復制到其列中:C3:= RANK(A3,$ A $ 3:$ A $ 6,0)E3:= MATCH(G3,$ C $ 3:$ C $ 6,0)H3:= INDEX($ B $ 3:$ B $ 6,E3)I3 := INDEX($ A $ 3:$ A $ 6,E3)
使用公式對Excel數(shù)據(jù)進行排序,而無需修復RANK函數(shù)。
C列中的公式對銷售值進行排名,其中最大的值排名1,表中的最小值排名4。理解E列的最簡單方法是舉一個例子??磫卧馟6。這標志著右側表中的第四排排序。單元格E6告訴我們,該行的值可以在表左側的第二行中找到。E列中的其他值提供類似的信息。H和I列使用E列中的信息返回適當?shù)闹怠?/p>
電子表格的第4行具有#N / A值的原因是因為RANK函數(shù)將相同的等級分配給相同的值。這是一個問題,因為大衣和褲子本月的銷售額相同。因此,RANK函數(shù)將相同的#1等級分配給C列中的兩個產(chǎn)品,并且根本不分配#2等級值。因此,當單元格E4中的公式尋找#2排名時,它將返回#N / A。但是,此問題很容易解決。只需為調整后的銷售額插入新列,然后對調整后的價值進行排名即可。以下是顯示的單元格的公式:B3:= A3 + 0.000001 * ROW()D3:= RANK(B3,$ B $ 3:$ B $ 6,0)
修復RANK函數(shù)后,用公式對Excel數(shù)據(jù)進行排序。B列會為每個Sales值添加一個微小的數(shù)量,該數(shù)量基于表中每一行的數(shù)量。這將強制Sales2中的每個值都是唯一的,這會強制D列中的Rank值是唯一的。這為我們提供了H:J列中的自動排序值。當您使用此技術時,請確保在選擇單元格B3的公式中顯示的小數(shù)部分時估計表中的最大行數(shù)。也就是說,如果您要擁有成千上萬的數(shù)據(jù)行(New Excel允許),請確保在將小數(shù)部分乘以一百萬左右的行數(shù)時仍然有一個小數(shù)。