Excel表格利用函數製作排序器(可依據不同欄位、升降序排序)

2020-12-11 Excel小小技巧

Excel表格中的排序功能是我們經常使用的一個功能,排序的方式主要有升序排序、降序排序和自定義排序。前兩種排序方式默認的排序依據都是所選排序區域的第一列數據,自定義排序用戶可以自定排序的主要依據和次要依據。在我們的日常工作中可能會遇到根據不同要求來排序一份數據。如果每一次都手動的根據不同的欄位值依據和排序方式重新排序,那麼效率會非常底。這篇文章將為朋友們分享一個完全使用函數製作的排序器。這個排序器可以根據不同欄位依據、以升序或降序對的方式對數據進行排序。

一.實例要求:

在下圖中要求根據不同欄位值(套餐1、套餐2...)以升序或降序的方式對這份數據排序。

二.動態效果演示:

首先給朋友們演示一下已經製作完成的動態效果圖,一起來感受一下這個排序器的強大。

三.製作過程

1.為每一個數值型數據都加一個非常小的數值,以免存在重複項。

操作步驟:

Ctrl+A選擇數據→到一個空單元格中粘貼→點開粘貼完數據區域下方的倒三角(粘貼選項)→選擇粘貼連結(這種方式的粘貼是對原始數據單元的引用)→選擇所有的數值→Ctrl+H打開替換窗口→查找=,替換為=ROW()/10000000+→確定(因為ROW()返回的是當前單元格所在的行數,所以每一行單元格中增加的非常小的數值都不同,這樣就可以避免重複數據的出現)→選擇粘貼完的數據→複製→粘貼為數值→將原始數據刪除。

2.製作排序依據和排序方式下拉列表。

利用數據選項卡下的數據驗證製作簡單的下拉列表,以方便選擇排序依據和排序方式。

3.在H列製作一個輔助列,用函數對排序依據欄位下所有的數據按照排序方式進行排序。

(1)在H2單元格輸入公式:

=IF($G$2="升序",SMALL(INDIRECT(CHAR(64+MATCH($G$1,$A$1:$E$1,0)) & "2:" & CHAR(64+MATCH($G$1,$A$1:$E$1,0)) &COUNTA($A:$A)),ROW(A1)),LARGE(INDIRECT( CHAR(64+MATCH($G$1,$A$1:$E$1,0)) & "2:" & CHAR(64+MATCH($G$1,$A$1:$E$1,0)) &COUNTA($A:$A)),ROW(A1)))

(2)公式解析:

MATCH($G$1,$A$1:$E$1,0)返回的是排序依據欄位在表頭中的位置。

CHAR(64+MATCH($G$1,$A$1:$E$1,0))是將(1)查找到到的位置轉化成以字母ABC...的形式表述。

COUNTA($A:$A)返回的是A列非空單元格的個數。

INDIRECT(CHAR(64+MATCH($G$1,$A$1:$E$1,0)) & "2:" & CHAR(64+MATCH($G$1,$A$1:$E$1,0)) &COUNTA($A:$A))返回的是排序依據下所有的數據構成的數組。

用Large或Small函數根據ROW()函數返回的123...的數字序列來提取(4)數組對應的第N個最值。

最後用if函數判斷排序的方式是升序還是降序排序。

4.根據步驟3製作的輔助列來反向查找每個數據所對應的姓名:

(1)在I2單元格輸入公式:

=VLOOKUP(H2,IF({1,0},INDIRECT(CHAR(64+MATCH($G$1,$A$1:$E$1,0)) & "2:" & CHAR(64+MATCH($G$1,$A$1:$E$1,0)) &COUNTA($A:$A)),$A$2:$A$17),2,0)

{1,0}是一個由數字1和0構造成的簡單的數組。

IF({1,0},INDIRECT(CHAR(64+MATCH($G$1,$A$1:$E$1,0)) & "2:" & CHAR(64+MATCH($G$1,$A$1:$E$1,0)) &COUNTA($A:$A)),$A$2:$A$17)構造了一個排序依據欄位在前、姓名在後的數組。

最後使用Vlookuo函數就可以查找到每一個數據所對應的姓名。

5.將步驟3與步驟4整合只需要在H2單元格輸入公式:

=VLOOKUP(IF($G$2="升序",SMALL(INDIRECT(CHAR(64+MATCH($G$1,$A$1:$E$1,0)) & "2:" & CHAR(64+MATCH($G$1,$A$1:$E$1,0)) &COUNTA($A:$A)),ROW(A1)),LARGE(INDIRECT( CHAR(64+MATCH($G$1,$A$1:$E$1,0)) & "2:" & CHAR(64+MATCH($G$1,$A$1:$E$1,0)) &COUNTA($A:$A)),ROW(A1))),IF({1,0},INDIRECT(CHAR(64+MATCH($G$1,$A$1:$E$1,0)) & "2:" & CHAR(64+MATCH($G$1,$A$1:$E$1,0)) &COUNTA($A:$A)),$A$2:$A$17),2,0)

6.根據姓名查找其他所有對應的數據:

(1)在I2單元格輸入公式:=VLOOKUP($H2,$A:$E,COLUMN(B:B),0),向右向下拖動填充。

(2)公式解析:COLUMN(B:B)返回的是B列所在的列數字2,向右拖動填充時會轉變成234....,以確保準確的查找出其他數據。

(3)為不同列的數據分別添加一個數據條直觀的顯示數據。

注意事項:

1.涉及到數組公式的部分確定公式時一定要按住Ctrl+Shift+Enter三鍵確定。

2.注意單元格絕對引用和相對引用。

總結:實現在這個排序器公式看起來很長,但是其實並不複雜。公式中有很多重複的部分,當然為了使公式更簡潔可以將重複的部分定義成名稱。如果朋友們有不懂的地方歡迎給我留言或者在評論區一起探討,覺得有用麻煩幫助點讚轉發。

相關焦點

  • Excel表格利用函數製作數據自動排序器(可自動升序、降序排列)
    表格中的排序功能是一個非常實用、強大功能。對於數據的主要排序方式有升序排列和降序排列,在日常工作中可能會經常根據要求要更改數據的排序方式。今天為朋友們分享一個不涉及任何VBA代碼、完全使用公式製作的自動排序器。
  • Excel表格使用條件格式製作可模糊、不同欄位查找的信息查詢器
    在此之前分享過兩種方法製作信息查詢器(有興趣的朋友可以閱讀一下),今天為朋友們分享一種更簡單的、使用條件格式製作可模糊、不同欄位查找的信息查詢器。功能說明:在下圖中在G1單元格選擇不同的查找依據欄位值,在G2單元格輸入要查詢的內容(可簡寫用於模糊查找)。A:D列信息源區域的單元格如果包含查詢內容,那麼就會自動填充一個顏色突出顯示單元格內容。二.
  • 【乾貨】6個Excel排序神技巧
    其中升降序最為簡單,自定義排序功能超級強大。升降序因為太過於簡單,所以很多人往往忽視對這2種排序技巧的挖掘。下面我們介紹利用升序來製作工資條的技巧。製作技巧及方法如下:最終效果四、藉助函數輕鬆搞定英文字母和數字混合的列的排序有這麼一列數據,每一單元的內容都是單個英文字母加上數字組成。現在我們要對其進行排序。
  • Excel用定義名稱、萬金油公式製作查詢器、可模糊、不同欄位查找
    Excel表格使用公式製作信息查詢器(可模糊查找、不同欄位查找)有粉絲朋友說公式太長太複雜看不太明白,希望我可以分享一個更容易理解的方法製作一個信息查詢器。match_type 可選。 數字 -1、0 或 1。3.INDEX函數(在這裡只用到第一個參數為array形勢,也就是數組形式)(1)功能:返回表或數組中元素的值,由行號和列號索引選擇。
  • Excel表格使用公式製作信息查詢器(可模糊查找、不同欄位查找)
    今天為朋友們分享一個利用函數製作的可以模糊查找、不同欄位查找的信息查詢器。一.話不多說先給朋友來一張動態效果圖,感受一下整個查詢器的神奇。二.使用方法:1.在G1單元格通過下拉列表選擇要查找的欄位依據。
  • 可以像使用SQL一樣對List進行排序麼?java8排序鏈,真香
    你知道怎麼對一個Movie對象組成的List集合,先按照是否收藏欄位倒序排序,再按照評分的倒序進行排序麼?如果您不知道4行代碼以內的解決方案(其實是1行代碼就可以實現,但筆者格式化為4行),我覺得您有必要一步步的看下去。在java 8 之前,實現對象Collection排序,集合中被排序和比較大小的對象得實現Comparable接口。
  • EXCEL函數公式大全之利用MONTH函數和分類匯總匯總每個月的銷售額
    EXCEL函數公式大全之利用MONTH函數和分類匯總匯總每個月的銷售額。excel函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數MONTH函數與分類匯總的組合。
  • 終於有解了:如何在 Excel 數據透視表的分類欄位內部排序?
    數據透視表中的值雖然可以排序,但是只能有一個排序條件,無法設兩個優先級。如果有兩個行欄位,要求按第一個欄位排序的同時,還要在分類中按第二個欄位再次排序,怎麼才能做到?文字描述大家可能沒什麼感覺,看了案例就明白了。
  • excel排序技巧:這些不同方式的排序方法你都會了麼
    編按:都說這Excel裡暗藏玄機,求最大值的MAX函數可以用於查找,用於查找的LOOKUP函數可以對數據進行四捨五入…「排序呀,你這樣一條一條的複製插入,做到明天也做不完。」「這個也能排序嗎?是要用函數嗎?」「不用。其實這個功能就在排序裡,只是你平時沒有留意。」說著打開了她的表,如下圖所示。
  • excel排序技巧:這些不同方式的排序方法你都會了麼
    編按:都說這Excel裡暗藏玄機,求最大值的MAX函數可以用於查找,用於查找的LOOKUP函數可以對數據進行四捨五入…就連看似人人都會的Excel自動排序,也藏著許多我們不知道的「小秘密」。今天我們就來探索一下這些藏在自動排序中的「小秘密」。
  • excel不改變數據位置進行排序,rank函數可以幫到你
    我們在實際工作中,當我們使用excel表格處理大量數據的時候,有時候我們需要對數據進行排序,數據排序我們通常會使用到excel自帶的排序工具,這個工具方便快捷,但是使用排序工具對數據進行排序,會改變數據的位置,假如我們不想打亂數據的位置,又想對數據的大小進行排序操作,我們該如何處理
  • 【超詳細】ArcGIS欄位計算器分割欄位中的字符串
    最近在整理植物數據,數據本來是以excel進行存儲,但是其中涉及到要對欄位進行分割,由於對excel的相關函數不熟悉於是想著能不能用arcgis的欄位計算器進行解決,經過摸索成功地解決了自己遇到的問題,並記錄下來,如下:1、目的:用arcgis的欄位計算器將欄位基於特殊字符進行分割,並將分割後的數據保存在對應的新創建的欄位中;
  • excel隨機數函數是什麼?excel怎樣生成隨機數?
    本篇將介紹excel隨機數函數是什麼?excel怎樣生成隨機數?有興趣的朋友可以了解一下!一、前言excel是我們工作中很常用的一款表格製作工具,它不僅僅只是用來製作表格,它還能對表格中的數據進行處理(比如:運算、排序、篩選等)。
  • excel中vlookup函數的用法筆記
    本篇將介紹excel中vlookup函數的用法,有興趣的朋友可以了解一下!一、前言excel是我們工作中很常用的表格製作工具,它不僅僅只是用來製作表格,還能對數據進行處理(如:排序、運算等)。excel中還給我們提供了很多實用的函數,今天小編要介紹的就是其中一個,也是比較常用的一個函數,即vlookup函數。vlookup函數的功能其實就是用來找東西的,只要是找excel表格中的某個數據,大家都會想到使用vlookup函數。vlookup函數怎麼用呢?相信是很多人關心的問題,接下來就跟著小編一起來學習excel vlookup函數的用法吧!
  • excel技巧-使用left\right\mid函數提取欄位中某些文字符號的方法
    日常工作中,經常會遇到需要對某些單元格中的內容進行部分的欄位提取,這時候就可以用到left函數、right函數和mid函數了,這幾個函數的公式如下:=left(text,【num_chars】);=right
  • Excel中數據排序咋弄?
    排序的三要素排序的三要素是指排序範圍、排序依據及排序順序。在給數據進行排序之前,首先要搞清楚參與排序的範圍有哪些?排序的順序依據是什麼?排序的順序是升序還是降序? ❶ 排序範圍排序範圍是指對單獨一列數據進行排序,還是會聯動多列數據一起排序。
  • 除了用命令排序外,還可以用函數公式、透視表排序
    排序,在Excel中是非常常見的操作,除了用命令排序外,還可以用函數公式去實現。一、Excel排序:命令排序。目的:對「銷售額」按「降序」排序。2、【數據】-【排序】,打開【排序】對話框。3、【主要關鍵字】選擇需要排序的欄位,即「銷售額」;【排序依據】選擇「單元格值」;【次序】選擇【降序】並【確定】。解讀:在選定目標單元格時,注意選擇表格的「標題」,這樣有利於選擇欄位。
  • 高階函數與函數式編程
    對比較複雜的數據進行排序,則需要一些額外的工作。假如語文老師想對語文成績進行排序,改如何進行呢?sorted 支持指定一個自定義排序函數 key ,該函數以列表元素為參數,返回一個值決定該元素的次序。小剛 65小明 70小麗 85小宇 85小新 85小雪 90自定義排序函數還可以控制升降序,如果需要按分數從高到底依次排序,可以返回成績的負數作為排序基準:def by_chinese_desc(item):
  • 一款純前端類似excel的開源在線表格!
    相關連結源碼文檔Demo插件Demo論壇Github在線文檔在線Demo導入Excel Demo中文論壇Gitee鏡像Gitee在線文檔Gitee在線DemoGitee導入Excel DemoGoogle Group插件excel導入導出庫: Luckyexcel圖表插件: chartMix特性🛠️格式設置🧬單元格拖拽選取來修改單元格
  • 老師必學技巧之「利用Excel表格-VLOOKUP函數製作一個查詢系統」
    相信老師們在日常辦公中用得最多的工具要數Excel了,今天就和老師們聊聊如何用excel製作一個查詢系統!具體步驟如下:在製作查詢系統前,我們先來認識一下VLOOKUP函數,VLOOKUP函數的用途主要是在表格或數值數組的首列查找指定的數值,並由此返回表格或數組中該數值所在行中指定列處的數值。