tft每日頭條

 > 科技

 > 函數提取數據

函數提取數據

科技 更新时间:2025-01-30 15:09:00

數據處理過程中,有時候我們需要從數據列中提取出自己想要的值,作為新的列去使用,我們來看看通過函數如何實現拆分與提取數據吧~

場景一:使用文本函數提取數據

需求1:提取訂單編号中的前綴、中間、後綴部分。

函數提取數據(如何使用函數實現拆分與提取數據)1

分析:訂單編号非常規律,前綴是6位,中間是9位-後綴是4位,可以直接使用對應的文本截取函數進行提取數據。

公式:

前綴:=LEFT(A3,6)

中間:=MID(A3,8,9)

後綴:=RIGHT(A3,4)

文本截取函數

含義

LEFT(文本,截取個數)

左截取:從文本左邊截取對應個數的内容

MID(文本,開始截取的位置,截取個數)

中間截取:從文本指定位置截取對應個數的内容

RIGHT(文本,截取個數)

右截取:從文本左邊截取對應個數的内容

進階需求:訂單編号中的前綴、中間、後綴的長度不一緻

函數提取數據(如何使用函數實現拆分與提取數據)2

公式:

前綴:=LEFT(A3,FIND("-",A3)-1) —使用LEFT左截取,截取個數根據第一個“-”的位置确定。

中間:=MID(A3,FIND("-",A3) 1,FIND("-",A3,FIND("-",A3) 1)-FIND("-",A3)-1) —使用MID中間截取,截取開始的位置根據第一個“-”的位置确定,截取的個數根據第二個“-”的位置減去第一個“-”的位置的差值确定。

後綴:=MID(A3,FIND("-",A3,FIND("-",A3,FIND("-",A3) 1)) 1,10)—使用MID中間截取,

截取開始的位置,通過第2個“-”的位置來确定,通過FIND查找,查的開始位置為第一個“-”的位置加1

截取個數的數值可以寫大點,超過了就已有的個數會按照已有個數取。

文本查找函數

含義

FIND/SEARCH(要查的文本, 被查的文本, 查的開始位置)

要查文本在被查的文本的第一個位置(找不到返回 #VALUE!),省略第三參數,默認為1

FIND與SEARCH的區别:

FIND— 識别大小寫字母,不可以使用通配符

SEARCH— 不識别大小寫字母,可以使用通配符

需求2:将數據中的單位與數字分開

函數提取數據(如何使用函數實現拆分與提取數據)3

公式:

單位:=RIGHT(A3,LENB(A3)-LEN(A3))—使用RIGHT右截取,截取個數等于字節長度-字符長度

數字:=LEFT(A3,LEN(A3)-(LENB(A3)-LEN(A3)))—使用LEFT左截取,截取個數=字符長度-(字節長度-字符長度)(字節長度-字符長度,其實是文字的個數,整體的個數減去文字的個數就是數字個數)

文本長度函數

含義

LEN(文本)

字符長度(一個數字、文字、符号、英文各自為1個字符)

LENB(文本)

字節長度(一個中文、标點符号都各自為2個字節,英文、數字是1個字節)

需求3:将地址中的省份、城市、詳細地址分開

省份是截取地址中的省或者區的信息;城市是截取市的信息;詳細地址是市後面的信息

函數提取數據(如何使用函數實現拆分與提取數據)4

公式:

省份:=LEFT(A3,FIND(IF(ISNUMBER(FIND("省",A3)),"省","區"),A3))

使用LEFT從左截取,截取的長度,可以根據省或者區的位置,通過FIND找,需要知道第一個參數是省還是區,通過IF判斷,如果找到“省”,就是省,否則就是“區”。而find找不到把#VALUE!錯誤,我們通過ISNUMBER,将其變成TRUE或者FALSE。

城市:=MID(A3,FIND(IF(ISNUMBER(FIND("省",A3)),"省","區"),A3) 1,FIND("市",A3)-FIND(IF(ISNUMBER(FIND("省",A3)),"省","區"),A3))

直接使用MID中間截取,截取的位置通過市或者區的位置來确定,截取的個數根據“市”的位置減去市或者區的位置來确定。

詳細地址:=MID(A3,FIND("市",A3) 1,99)

直接使用MID中間截取,截取的位置通過找“市”的位置

需求4:提取指定的字符最後一次出現後的數據

提取文本中第二列指定字符最後一次出現後的數據

函數提取數據(如何使用函數實現拆分與提取數據)5

方法一:将最後一個指定的字符替換成一個很大的字符(々),然後通過MID中間截取,截取開始的位置就是“々”的位置,截取個數可以寫大點即可

最主要的是如何隻替換最後一個指定字符将其變成(々)

将所有的指定字符替換為空,總長度-替換後的字符=查找字符的個數,個數正好是最後一個指定的字符。

=MID(A3,FIND("々",SUBSTITUTE(A3,B3,"々",LEN(A3)-LEN(SUBSTITUTE(A3,B3,"")))) 1,99)

方法二:将所有的指定字符替換為99(很多)個空格,然後右截取一個比較大的字符(包括想要提取的數據),然後進行清洗,去掉空格即可

=TRIM(RIGHT(SUBSTITUTE(A3,B3,REPT(" ",90)),90))

函數

含義

SUBSTITUTE(文本,被替換的字符,新的字符, 替換第幾個)

對指定的字符進行替換

REPT(文本,重複的次數)

将文本重複一定的次數

TRIM(文本)

除了單詞之間的單個空格外,清除文本中所有的空格

需求5:提取不規範日期格式中的年月日

函數提取數據(如何使用函數實現拆分與提取數據)6

這個比較簡單,就不多說了

場景二:使用日期函數提取數據

需求1:從規範的日期分别提取對應的數據

函數提取數據(如何使用函數實現拆分與提取數據)7

公式

函數

含義

=YEAR(A3)

YEAR(日期)

返回日期的年份值

=MONTH(A3)

MONTH(日期)

返回日期的月份值

=DAY(A3)

DAY(日期)

返回一個月中的第幾天的數值(1-31)

小時

=HOUR(A3)

HOUR(日期)

返回一個時間值中的小時數

分鐘

=MINUTE(A3)

MINTUTE(日期)

返回一個時間值中的分鐘數

=SECOND(A3)

SECOND(日期)

返回一個時間值中的秒數

星期幾

=WEEKDAY(A3,2)

WEEKDAY(日期,周期類型)

返回日期在一周的第幾天(以第二參數确定周期)

日期

=DATE(YEAR(A3),MONTH(A3),DAY(A3))

DATE(年,月,日)

返回指定的日期

月末

=EOMONTH(A3,0)

EOMONTH(日期,日期之前或之後的月份數)

返回指定日期之前或之後某個月的最後一天的日期(月底)(Months為0則當前月份)

文章雖然是實現數據的拆分與提取,但是其中基本上将常用的文本和日期函數說的差不多了,而且除了使用函數之外,一些技巧也能實現數據的拆分,比如快速填充(CTRL E)和分列,分列大家可以看這個文章Excel中強大的分列功能,常見用法你了解嗎?。之前文章也講解過如何拆分工作表(将工作表按照某個字段拆分成多個工作表),大家可以也看做數據的拆分與提取。大家有什麼問題,歡迎在評論區留言~

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved