快速搞定字符串提取2-中間提取英文、數字

2021-02-07 辦公軟體表格小技巧

快速搞定字符串提取1-兩側提取英文、數字

上篇最後留下的一個問題你做出來了嗎?

我相信大部分小夥伴都做出來了,其實只需要LEFT和RIGHT換一下就能搞定的,我就不做演示了。


今天這篇涉及的知識量有點大,請小夥伴們多點耐心看下去,一個案例引發多個知識點,先來看一下今天的需求:

A列是包含「品名」「貨號」及「商品屬性」的信息源,規則是:

第一個英文之前的字符串是品名

第一個英文到最後一個數字為貨號

最後一個數字之後為商品的屬性


先來看結果,結果之後是講解:

C2單元格輸入:

=MIDB(A2,1,SEARCHB("?",A2)-1)

註:其中的問號是半角符號,很重要

下拉填充

D2單元格輸入:

=MID(A2,LEN(C2)+1,LOOKUP(1,0/MID(A2,ROW($1:$99),1),ROW($1:$99))-LEN(C2))

下拉填充

E2單元格輸入:

=SUBSTITUTE(A2,C2&D2,""),下拉填充


先來了解幾個函數:

LOOKUP(查找的值,查找的範圍,返回值的範圍)

MIDB/MID(字符串,截取開始位數,需截取位數)

其中MIDB,全形字符為2個字節,半角字符為1個字節,漢字為全形字符。mid則一概計數為1.

SUBSTITUTE(要替換的文本,舊文本,新文本,[替換第幾個])

SEARCHB(要查找的文本,要在其中查找文本的文本,要開始查找的位置)

其中,全形字符佔2個字節,半角字符佔1個字節。

先來看C列獲取品名的公式,以C2為例:

SEARCHB("?",A2),這一步半角的問號,起到通配符的作用代表查找第一個1個字節的字符所在位置,本例中半角問號代表的就是貨號的"n"所在的位置,上篇講到過漢字及全形符號是佔2個字節,又因SEARCHB是按字節計數,所以一個漢字計數為2,4個漢字計數為8,那麼"n"在第九個,所以結果返回9再減去1得到"n"前一位的位數。

把以上結果帶入公式就等於MIDB("農夫山泉n123456大瓶",1,9-1),這樣就很好理解了,midb函數中一個漢字佔2位,四個漢字就佔8位,結果返回"農夫山泉"。

當然這個公式也可以換成MID的寫法:

=MID(A2,1,(SEARCHB("?",A2)-1)/2)

因為mid函數一概計數為1,所以我們把SEARCHB的結果除以2,轉換成以1計數的形式供mid取值。


再來看D列獲取貨號的公式,以D2為例:

LOOKUP(1,0/MID(A2,ROW($1:$99),1),ROW($1:$99))

這個是lookup一個很經典的用法:查找最後一個數字所在的位數

首先MID(A2,ROW($1:$99),1)會將A2單元格拆分成包含99個元素的數組,無內容記為空(當然如果你知道你的數據源絕對不會超過多少位的時候你可以99換成那個「多少」,為了保險起見一般都會寫的大一點)返回結果如下:

然後用0挨個除以數組中的每個元素,如果0除以漢字或者英文肯定返回錯誤值,而如果0除以數字則返回0,結果如下:

用LOOKUP查找1在這個數組中的位置,但始終查不到,於是返回最後一個0值的位置,從而得出最後一個數字的位置,即返回11

帶入公式就好理解了

C2是品名,有4位,所以公式中的len(c2)全部換成4

=MID("農夫山泉n123456大瓶",4+1,11-4)

也就是提取"農夫山泉n123456大瓶"這個字符串第5位開始共7位的字符串,即返回值為"n123456"


最後來看E列獲取商品屬性的公式,以D2為例:

"&"是一個連接符,可以將兩個字符串連接成一個,比如1&2,結果為12

C2&D2,就等於把C2和D2兩個單元格的字符串連接起來,返回值便是"農夫山泉n123456"

SUBSTITUTE(A2,C2&D2,"")等同於SUBSTITUTE("農夫山泉n123456大瓶","農夫山泉n123456","")

意思就是將"農夫山泉n123456大瓶"中的"農夫山泉n123456"替換為空,返回值便是"大瓶"(兩個連續半角雙引號是空的意思)


今天這篇文章相對來說有點繞,可能基礎比較差的小夥伴看的雲裡霧裡的,沒關係,只要你的原數據是漢字+英文+數字+漢字的格式,這幾個公式儘管拿去用都可以實現結果的。


希望我的分享能給你節省出喝杯咖啡的時間,也感謝你的關注和支持!

本次的分享就到這裡!

相關焦點

  • Excel數字提取技巧:從混合文本中提取數字的方法
    情景一:簡單不定長簡單不定長混合文本的特徵:1.不含英文及其他字符。2.數字統一位於文本最左側、最右側或中間固定起始位置。解決思路:數字初始位置固定,可以直接用LEFT、 RIGHT或MID提取,無需確認起始位置。唯一需要計算的參數就是文本長度。這裡由於混合文本不含單字節字符(英文字符或半角符號),我們可以使用LEN和LENB來確定數字長度。
  • MySQL:字符串中的數字、英文字符、漢字提取
    在進行字符串處理時,常常需要提取其中某一類型的字符,有時候需要提取其中的數字,有時需要提取其中的英文字符,而有時候則需要提取其中的中文字符
  • 提取單元格中的中文、英文和數字
    一、提取字符串中的英文先來看下面的數據,是一些混到一起的客戶信息,有姓名、英文名和住址,現在咱們要提取出其中的英文名。有小夥伴可能首先想到的就是在2013及以上版本中的快速填充功能,嗯嗯,可以實現要求,但是這個功能有很大的局限性,第一是數據源變化後不能更新,第二是要求數據必須要有非常明顯的規律性,否則結果就會出錯,因此快速填充功能不是今天咱們討論的主題。
  • 提取Excel單元格中的英文、漢字、數字,用Power Query輕鬆解決!
    日常工作中都會遇到一些不規範的數據,對於數據的提取是個頭疼的事情,今天教大家用Power Query快速提取你想要的內容,超簡單,又實用的技巧。1、提取英文在只有中英文混合的自字符串中我們可以這樣提取英文。A 定位表格位置,點擊數據-獲取和轉換-從表格,這時候數據自動加載到Power Query編輯器中。
  • WPS Excel:函數提取各種各樣的字符串
    如果給你一份如下excel表格,怎樣將這些姓名和電話(文字和數字)分離開呢?本文將用下面這些函數來提取字符串中的文字和數字。熟練掌握這幾個函數和文末終極大法,提取內容就不怕啦。這些函數中,LEFT\RIGHT\MID屬於同一組函數,主要用於從不同位置開始提取指定個數的字符;LEN\LENB屬於一組,用於獲取字符個數和字節數。FIND函數可以是三個參數也可以是兩個參數,用於獲取包含字符串的位置。
  • Excel公式技巧12: 從字符串中提取數字——將所有數字分別提取到不同的單元格
    ,本文研究從字符串中提取所有數字的技術:1.字符串由數字、字母和特殊字符組成2. 數字在字符串的任意地方3. 字符串中的小數也一樣提取3. 想要的結果是將所有數字返回獨立的單元格 例如,在單元格A1中的字符串:81;8.75>@5279@4.=45>A?
  • EXCEL快速提取中英文、數字的4個方法,總有一個適合你!
    應用場景:工作中,常常需要從單元格數據中截取一部分進行統計、計算,或者從不同系統導出的數據中提取中文、數字和英文等,如何快速提取需要的數據呢?介紹4種常用方法。E2公式:Right(B2,4)案例2: 將單元格中的中英文分開提取英文:①在B2單元格錄入公式:=LEFT(A2,LEN(A2)*2-LENB(A2))
  • 如何用Excel從字母數字字符串中提取數字
    此解決方案的基本原理是搜索並返回字母數字字符串中的第一個數字,然後只返回其後的數字。   算法   此解決方案包括創建公式以完成下列任務:   1.將字母數字字符串分解為單獨的字符。   2.確定分解後的字符串中是否有數字。
  • Excel怎麼快速提取混合單元格中的中文、英文、數字?
    Microsoft Excel快速提取混合單元格中的中文、英文、數字,雖然這個Microsoft Excel技巧聽起來很「高大上」,但是在實際辦公中很少會遇到中文、英文、數字「混合三打」的情況。俗話說得好,行走江湖技多不壓身,多一門技術,多一門吃飯的寶貝。廢話說的有些多了,接下來就直奔主題吧!
  • Excel提取數字、字母、漢字一個公式搞定
    小夥伴們大家好,今天給大家介紹一個自定義函數,可以用來提取文本中的數字、漢字和字母,話不多說,讓我們一起看下效果。功能講解上圖中,通過自定義一個函數「tiqu」,它一共有兩個參數:tiqu(字符串,提取類型)參數一是需要提取的字符串;參數二是需要提取的類型,1代表提取字母,2代表提取數字,
  • Excel提取單元格中的中文、英文和數字,便捷方法請拿好
    提取字符串中的英文先來看下面的數據,是一些混到一起的客戶信息,有姓名、英文名和住址,現在咱們要提取出其中的英文名。有小夥伴可能首先想到的就是在2013及以上版本中的快速填充功能,嗯嗯,可以實現要求,但是這個功能有很大的局限性,第一是數據源變化後不能更新,第二是要求數據必須要有非常明顯的規律性,否則結果就會出錯,因此快速填充功能不是今天咱們討論的主題。
  • Excel提取中文,數字和字母,一分鐘搞定!
    今天教大家一分鐘搞定這種情況。示例數據以下圖的數據為例我們想將中文,數字,英文單獨分層3列來提取,提取完後的結果應該如下:方法一:快速填充Excel新添加的一個快速填充功能,處理這類數據簡直就是神技,只要寫好例子,雙擊拖動然後選擇自動填充即可,如下圖:
  • 在Excel中提取數字,最好用的3種方法!
    2.數字統一位於文本最左側、最右側或中間固定起始位置。數字初始位置固定,可以直接用LEFT、 RIGHT或MID提取,無需確認起始位置。唯一需要計算的參數就是文本長度。這裡由於混合文本不含單字節字符(英文字符或半角符號),我們可以使用LEN和LENB來確定數字長度。
  • EXCEL函數公式大全之利用FIND函數MID函數提取字符串中間指定文本
    EXCEL函數公式大全之利用FIND函數和MID函數組合提取字符串中間指定文本。EXCEL函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數FIND函數和MID函數。
  • Excel教程:在Excel中提取數字,最好用的3種方法!
    2.數字統一位於文本最左側、最右側或中間固定起始位置。這裡由於混合文本不含單字節字符(英文字符或半角符號),我們可以使用LEN和LENB來確定數字長度。其中,LEN計算總字符數,LENB計算總字節數,由於1個漢字=1個字符=2個字節,1個單字節字符=1個字符=1個字節,於是我們可以用2*LEN-LENB來計算數字的長度,從而完成提取。PS:2*LEN-LENB確定數字長度的數學邏輯類似雞兔同籠,小花瓣們可以參照理解。
  • Excel表格快速提取單元格信息中的數字、字母、文字
    在Excel表格中提取單元格信息中的數字、字母、文字是我們經常會遇到的問題,今天為朋友們分享兩種方法解決快速提取信息。一.使用Excel最強大的數據拆分快捷鍵Ctrl+E提取數字。手動複製好一個數據之後在下方單元格按住Ctrl+E就可以快速拆分。1.實例要求:根據B列的信息提取所有人的身份證號、聯繫方式和年齡。
  • 用PowerQuery從Excel表格裡無規律文本中提取金額數字的例子
    在簡書上看到這麼一個例子:要求是提取出金額(也就是「元」前面緊挨著的數字)。作者藉助輔助列,用Excel解決了這個問題。但她這個例子有一個小缺陷——就是金額數字最大只能在三位整數以內。我好奇的是,用PowerQuery來尋找這個問題的通用解決辦法——也就是不管金額是不是整數,也不管有多少位數字,甚至金額是小數,都能正常提取出來。
  • excel數據提取技巧:從混合文本中提取數字的萬能公式
    有沒有能把任何文本中包含的所有數字都提取出來的公式?當然是有的,今天就給大家帶來提取數字的萬能公式,不管數字在文本中的位置是否有規律,不管文本中數字有多少,它都能把數字提取出來。趕緊來看看吧!學習更多技巧,請收藏關注部落窩教育excel圖文教程。在上一篇文章中,小花講解了通過觀察混合文本特徵,設置特定公式,完成數據提取的三種情景。
  • 不規則的文本快速提取指定數字
    Mid、left、right這三個函數是我們在提起部分數值的時候常用的函數,但是這三個函數有個限制是通常用於有規律或者規則的提取數值中,但是經常我們的原始數據並非這樣的,可能我們要提取的數值位於不同的位置,這個時候這些函數就滿足不了我們了,今天我們分享下對於不規則的情況下我們該如何提取
  • EXCEL中混合文本中如何提取數字部分?
    ,比如:如果提取數量單位混合填寫中的數量值,或是如何提起車牌號的最後一位數字?SUBSTITUTE函數+字符串提取函數我想的用常用的公式組合可以用兩種方法解決:一、SUBSTITUTE函數+字符串提取函數,先看公式C13=SUBSTITUTE(B13,RIGHT(B13,LENB