如何在 Excel 中按姓氏排序(簡易指南)

如何在 Excel 中按姓氏排序(簡易指南)

如果您使用名稱數據集,對其進行排序是您必須經常執行的常見任務之一。

根據全名按字母順序對數據進行排序非常容易,其中 Excel 使用名稱的第一個字符進行排序。

但是,如果您想在 Excel 中按姓氏對數據進行排序怎麼辦?

雖然它不是那麼簡單,但仍然可以完成(很大程度上還取決於名稱數據的結構方式)。

無論您使用哪種方法,您都必須以某種方式從全名中提取姓氏並將其放在單獨的列中。然後,您可以使用此列按姓氏字母順序對數據進行排序。

在本 Excel 教程中,我將向您展示如何根據姓氏對具有名稱的列進行排序。

所以讓我們開始吧!

使用查找和替換按姓氏提取和排序

按姓氏排序的第一步是在單獨的列中獲取姓氏。

您可以通過用空白替換姓氏之前的所有內容來做到這一點,這樣您就只剩下姓氏了。

假設您有一個如下所示的數據集,並且您希望使用姓氏按字母順序對該數據進行排序。

按姓氏排序的名稱

以下是按姓氏排序的步驟:

  1. 選擇包含標題的數據集(在本例中,它將是 A1:A10)
  2. 將其複製到相鄰列中(如果相鄰列不為空,則插入新列,然後復制這些名稱)在相鄰列中復制名稱數據集
  3. 重命名複製的列標題。在此示例中,我將命名為“姓氏”
  4. 選擇所有復制的名稱(不要選擇標題)
  5. 按住 Control 鍵,然後按 H 鍵。這將打開查找和替換對話框。控制 H 打開查找和替換對話框
  6. 在查找內容字段中,輸入 *(星號後跟空格字符)輸入星號後跟空格字符
  7. 將替換為字段留空將替換為字段留空
  8. 單擊全部替換。這將立即替換所有名字,您將只剩下姓氏。點擊全部替換

上述步驟將保留姓氏並刪除它之前的所有內容。即使您有中間名或前綴(例如 Mr. 或 Ms),這也很有效。

您僅使用查找和替換獲得姓氏

在相鄰列中獲得姓氏後,您可以輕鬆地根據姓氏按字母順序對數據集(包括全名)進行排序。

相關問題  KB5003173 問題 - 針對 0x800f0922 錯誤更新失敗的最佳修復

以下是按姓氏排序的步驟:

  1. 選擇帶有標題的整個數據集(包括全名和提取的姓氏)。您還可以包括要與名稱一起排序的其他列
  2. 單擊數據選項卡單擊數據選項卡
  3. 點擊排序單擊排序選項卡
  4. 在“排序”對話框中,確保選中“我的數據有標題”。
  5. 在“排序依據”選項中,選擇只有姓氏的列的名稱在排序方式選項中選擇姓氏
  6. 在“排序方式”中,選擇“單元格值”在排序依據中選擇單元格值
  7. 在“訂單”選項中,選擇“A 到 Z”選擇順序 - A 到 Z 或 Z 到 A
  8. 點擊確定

上述步驟將根據姓氏對整個選定的數據集進行排序。

根據姓氏排序

完成後,您可以刪除具有姓氏的列。

專業提示:在任何時候,如果您認為您可能需要返回原始數據,您需要有一種方法來取消對該數據集的排序。為此,在相鄰列(左或右)中,在排序之前有序列號。現在,如果您需要返回原始數據,您可以通過基於數字的排序來獲得它。

使用公式按姓氏提取和字母排序

雖然上面顯示的方法(使用查找和替換)是我更喜歡獲取所有姓氏並根據它進行排序的方法,但它的一個限制是生成的數據是靜態的。

這意味著如果我在列表中添加更多名字,我將不得不再次執行相同的過程來獲取姓氏。

如果這是您不想要的,您可以使用公式方法按姓氏對數據進行排序。

假設您有如下所示的數據集。

下面是從全名中提取姓氏的公式:

=RIGHT(A2,LEN(A2)-FIND(" ",A2))

Excel公式從全名中獲取姓氏

上面的公式依賴於具有全名的模式(在此示例中僅包含名字和姓氏)。模式是名字和姓氏之間會有一個空格字符。

FIND 函數用於獲取空格字符的位置。然後從名字的總長度中減去這個值,得到姓氏中的字符總數。

然後在 RIGHT 函數中使用該值來獲取姓氏。

一旦你有了姓氏列,你就可以對這些數據進行排序(這在第一種方法中有詳細介紹)。

當您只有名字和姓氏時,上述公式將起作用。

但是,如果您也有中間名怎麼辦。或者名字前可能有稱呼(如先生或女士)

在這種情況下,您需要使用以下公式:

=RIGHT(A2,LEN(A2)-FIND("@",SUBSTITUTE(A2," ","@",LEN(A2)-LEN(SUBSTITUTE(A2," ","")))))

上面的公式找到最後一個空格字符的位置,然後用它來提取姓氏。

我建議你在所有情況下都使用第二個公式,它更簡單,可以處理所有情況(只要姓在名字的末尾)。

注意:這兩個公式依賴於每個名稱元素之間只有一個空格字符的條件。如果有雙空格或前導/尾隨空格,此公式將給出不正確的結果。在這種情況下,最好使用 TRIM 函數先去掉任何前導、尾隨和雙空格,然後使用上述公式。

雖然這似乎是一種複雜的方法,但使用公式的好處是它可以使結果動態化。如果您在列表中添加更多名稱,您所要做的就是複制公式,它會為您提供姓氏。

使用文本到列

Text to Columns 又是一種在 Excel 中拆分單元格的簡單方法。

相關問題  利用 Excel 從文件夾中獲取文件名列表(使用和不使用 VBA)

您可以指定分隔符(例如逗號或空格)並使用它來分割單元格的內容。在單獨的列中拆分元素後,您可以使用具有姓氏的列來按字母順序排列數據。

假設您有一個如下所示的數據集:

以下是使用 Text to Column 按姓氏排序的步驟:

  1. 選擇具有名稱的列(不包括標題)
  2. 單擊數據選項卡單擊數據選項卡
  3. 在“數據工具”組中,單擊“文本到列”選項。這將打開 Text to Columns 嚮導單擊功能區中的“文本到列”選項
  4. 在“將文本轉換為列嚮導”的第 1 步中,選擇“分隔”並單擊“下一步”在步驟 1 中選擇分隔
  5. 在第 2 步中,選擇“空格”作為分隔符(如果選中則取消選中其他任何內容),然後單擊下一步按鈕。選擇空間選項,然後單擊下一步
  6. 在第 3 步中,選擇數據預覽中的名字列,然後選擇“不導入列(跳過)”選項。這可以確保名字不是結果的一部分,您只會得到姓氏。在文本到列嚮導的第 3 步中選擇不導入列
  7. 同樣在步驟 3 中,將目標單元格更改為與原始數據相鄰的單元格。這將確保您單獨獲得姓氏並且原始姓名數據是完整的。指定文本到列結果數據的目標單元格
  8. 點擊完成

獲得結果後,您可以按姓氏排序。

文本到列的結果以提取姓氏,然後按其排序

當您有逗號作為分隔符時,您還可以使用文本到列來分隔名字和姓氏。

使用閃光填充

另一種快速獲取姓氏的方法是使用 Flash Fill 功能。

Flash Fill 是在 Excel 2013 中引入的,它通過識別模式來幫助操作數據。為此,您需要多次顯示 Flash Fill 您期望的結果。

一旦它識別出模式,它將迅速為您完成其餘的工作。

假設您有以下名稱數據集。

使用快速填充按姓氏排序的名稱數據

以下是使用 Flash Fill 獲取姓氏並使用它進行排序的步驟:

  1. 在單元格 B2 中,輸入文本“Maury”。這是您在單元格中期望的結果。
  2. 轉到下一個單元格並輸入相鄰單元格中姓名的姓氏(本例中為 Elliot)。
  3. 選擇兩個單元格
  4. 將光標懸停在所選內容的右下部分。您會注意到光標變為加號圖標。選區右下角的綠色方塊
  5. 雙擊它(或單擊並向下拖動)。這將在單元格中為您提供一些結果(不太可能是您想要的結果)
  6. 單擊“自動填充選項”圖標。單擊自動填充選項圖標
  7. 點擊快速填充選擇 Flash Fill 選項以獲取所有姓氏
相關問題  5 款最佳NBA直播Windows 10 應用程式

這將為您提供可能是所有單元格中的姓氏的結果。

我說可能,因為 Flash Fill 在某些情況下可能不起作用。由於它取決於識別模式,因此它可能無法始終做到這一點。或者有時,它破譯的模式可能不是正確的模式。

在這種情況下,您應該在一個或兩個以上單元格中輸入預期結果,然後執行步驟 4-7。

在列中包含所有姓氏後,您可以根據這些姓氏對數據進行排序。

因此,您可以使用以下四種不同的方式按姓氏對數據進行排序。最好的方法是使用查找和替換技術,但如果你想讓你的結果動態化,公式方法是要走的路。

希望您發現本教程很有用。

哦,您好 👋很高興認識你。

訂閱我們的電子報,定期發送很棒的科技內到您的郵

Post Comment