tft每日頭條

 > 生活

 > excel求和和公式求和的值不一緻

excel求和和公式求和的值不一緻

生活 更新时间:2025-02-14 00:12:47

excel求和和公式求和的值不一緻?編按:同一單元格的文字裡包含了多個百分數如何直接求百分數的和而不借助分列?,現在小編就來說說關于excel求和和公式求和的值不一緻?下面内容希望能幫助到你,我們來一起看看吧!

excel求和和公式求和的值不一緻(文本中多個百分數彙總求和)1

excel求和和公式求和的值不一緻

編按:同一單元格的文字裡包含了多個百分數。如何直接求百分數的和而不借助分列?


直接彙總文本中的數據很困難。在前面我們分享過報銷事項和金額記在一起的流水賬彙總。當時每條文本中隻有一個數字。如果每條文本中有多個百分數又怎麼直接相加求和呢?

今天我們就來說說直接彙總文本中的多個百分數。學習更多技巧,請收藏關注部落窩教育excel圖文教程。

下圖是産品的成分表,我們需要彙總成分總和。

這類彙總,為了效率和準确性,肯定不能口算、筆算、按計算器算。那要怎麼算才又快又準呢?

——用函數公式。這道題目的公式如下。

在單元格C2中輸入公式

=SUM(IFERROR(--MID(TEXT(RIGHT(TRIM(MID(SUBSTITUTE("ss"&B2,"%","%"&REPT("",99)),99*COLUMN(A:D)-98,99)),ROW($2:$6)),),2,99),0))

輸完後,按三鍵(CTRL SHIFT ENTER),并向下拖曳即可。如下圖:

公式很長,很上頭?——看解析!函數解析:

? TRIM(MID(SUBSTITUTE("ss"&B2,"%","%"&REPT("",99)),99*COLUMN(A:D)-98,99)):在B2單元格加上兩個ss,并在每個百分号%後面插入長度為99的空格;然後依次從第1、100、199、298處各提取長度為99的字符串,最後去掉提取的字符串中的空格,結果是{"ss95%","人造棉,5%","滌綸",""}。這段如果看不懂,可以看《Excel腦洞大開:用99個空格來提取單元格數據,你會嗎?》

? RIGHT(TRIM()):在TRIM返回值中從右向左依次提取長度分别是2、3、4、5、6的字符,得到的結果是{"5%","5%","滌綸","";"95%",",5%","滌綸","";"s95%","棉,5%","滌綸","";"ss95%","造棉,5%","滌綸","";"ss95%","人造棉,5%","滌綸",""}。

? TEXT(RIGHT()):将上述的結果轉換為{"","","滌綸","";"",",5%","滌綸","";"s95%","棉,5%","滌綸","";"ss95%","造棉,5%","滌綸","";"ss95%","人造棉,5%","滌綸",""},所有的數值型數據已經變為空值。

? MID(TEXT()):從TEXT返回值的第2位開始提取長度為99的字符串,結果為{"","","綸","";"","5%","綸","";"95%",",5%","綸","";"s95%","棉,5%","綸","";"s95%","造棉,5%","綸",""}。

? 利用減負将文本型數據轉換為錯誤值,在用IFERROR函數将錯誤值轉換為0,其結果為{0,0,0,0;0,0.05,0,0;0.95,0,0,0;0,0,0,0;0,0,0,0}。

? SUM函數求和得到1(100%)。

如果看了函數解析,還有問題的,請直接跳轉到文末看疑問解答。

——錯誤處理。咦?為什麼最後一行結果是300%?

原來這行數據有個特殊的地方,字符串的最後有個數字2,而EXCEL在最後計算是将它也加入到計算中了,因此需要對公式進行調整,在單元格尾巴上也添加一個非數值字符“s”。如下圖示:

原公式中的"ss"&B2調整為"ss"&B2&"s"後就完美地解決了問題。增加的“s”是在内存數組中将數字2變成了文本字符串“2s”,從而避開了運算。

好了,今天就和大家分享這麼多吧!學習更多技巧,請收藏關注部落窩教育excel圖文教程。

如果你堅持看到這裡,那就再送幾個疑難解答給你,有利完整理解公式。

——疑問解答

1.為何用RIGHT提取字符串時要依次提取2~6個字符?

這與百分比數字字符長度和TEXT函數有關。

我們當前百分比數據數位最長的是90.5%,有5位。按道理用RIGHT函數從右往左依次提取2~5個數字肯定就能把位數最長的“90.5%”提取到;但是後面省略第二參數的TEXE函數會把提取到的90.5%當做空值處理。所以我們必須多提取一位,得到“s90.5%”,這樣才能在後續的提取中得到90.5%。

也就是說提取字符數必須是百分數最長字符數 1。又因百分數最小也有2個字符長度,所以是提取2~6個字符。

2.為何要添加“s”字符?

很簡單,因為使用了省略第2參數的TEXT函數。這個函數确定了百分數前面必須有至少一個非數值的字符,否則提取到的數字會被TEXT當做空值處理掉。當前數據中, B2、B3、B5單元格中的第一個百分數前缺少非數值字符,所以我們得添加非數值字符。你添加“S”或者“人”“,”等非數值字符都可以。

3.為何要添加兩個“s”字符?

前一個問題已經明确了百分數前必須至少有一個非數值的字符。那為何是加兩個“s”呢?為了公式能用于整個數據,所以式中是按照百分數最長字符數 1進行多次提取的。譬如B2單元格的95%,字長3位,如果隻提取它,隻需要RIGHT依次提取2、3、4個字符即可;現在為了“照顧”5位值的百分數,則要依次提取2、3、4、5、6個字符,多提取了兩次,因此,就得多一個s,讓多提取的部分都是“ss95%”,如此,最後一次用MID從第2位開始提取的時候,多提取部分得到的都是s95%,避免了多返回兩個95%,造成計算錯誤。

結論:隻要百分比的位數不等,為了避免多次返回同一數值,必須保證每個百分比前至少有兩個非數值字符。

4. 公式中TEXT函數起什麼作用?

對比這兩組公式我們可以看到,當省略TEXT函數的第二個參數時,TEXT函數隻返回文本數據,所有數值型的數據都當做空值處理。上面函數公式就利用了TEXT函數的這個特點,将RIGHT返回值中的所有數值變成了空值!

童鞋們,今天的公式有點長,不過都有解析,可以設計一個案例自己動手試試!學習更多技巧,請收藏關注部落窩教育excel圖文教程。


****部落窩教育-excel文本中多個百分數求和****

原創:Excel應用之家/部落窩教育(未經同意,請勿轉載)

更多教程:部落窩教育

exceljiaocheng, v:blwjymx2


做Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!

相關推薦:

流水賬中文本數據求和:賬目中文字和數據記錄在一起怎麼求和?

從訂單中提取手機号碼:如何從多人拼單的訂單中提取各顧客的手機号?

從混合文本中提取數字:Excel數字提取技巧:用簡單公式從混合文本中提取數字的3種情景

文本數據提取的經典案例:Excel腦洞大開:用99個空格來提取單元格數據,你會嗎?

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

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

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