Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統的電腦編寫的一款電子表格軟件。直觀的界面、出色的計算功能和圖表工具,再加上成功的市場營銷,使Excel成為最流行的個人計算機數據處理軟件。 對于Excel工作薄中一個包含重復數值的區域,要將其中的數值按出現次數的多少提取到一列,通常可以用包含MODE函數的數組公式。例如數值區域為A1:E10,要將其中的數值提取到G列,如圖。 在G2中輸入: =MODE(IF(COUNTIF($G$1:G1,A$1:E$10)=0,A$1:E$10)) 公式輸入完畢按Ctrl+Shift+Enter結束,然后拖動填充柄向下填充公式,直到出現“#N/A”為止。 受MODE函數的限制,該公式僅對數值有效,且不能提取只出現一次的數值。要將區域中所有的數據按出現次數提取到一列,可用VBA代碼來實現。如將下圖A1:E10區域中的文本按出現次數多少提取到G列: 按Alt+F11,打開VBA編輯器,在代碼窗口中輸入下列代碼并運行,即可G列得到按出現次數降序排序的文本,在H列得到對應文本的出現次數。 Sub 按出現次數排序() Dim d As Object Dim Arr Dim i As Integer, j As Integer Application.ScreenUpdating = False '提取不重復值并計算出現次數 Set d = CreateObject("Scripting.Dictionary") Arr = Range("A1:E10") For i = 1 To UBound(Arr, 1) For j = 1 To UBound(Arr, 2) If Not d.Exists(Arr(i, j)) Then d.Add Arr(i, j), 1 Else d.Item(Arr(i, j)) = d.Item(Arr(i, j)) + 1 End If Next Next '輸出并排序 Range("G2").Resize(d.Count) = Application.Transpose(d.keys) Range("H2").Resize(d.Count) = Application.Transpose(d.items) Range("G2:H2").Resize(d.Count).Sort key1:=Range("H2"), Order1:=xlDescending Set d = Nothing Application.ScreenUpdating = True End Sub 說明:如果文本出現的次數相同,將按先行后列的順序依次提取 Excel整體界面趨于平面化,顯得清新簡潔。流暢的動畫和平滑的過渡,帶來不同以往的使用體驗。 |
溫馨提示:喜歡本站的話,請收藏一下本站!