我需要一個執行特定數學運算的公式,但只能使用滿足特定條件的數字。在這種情況下——從帶有特定文本的字串中提取數字。
在第一列中,我們有一些原始資料:一個由不同數字和文本除以下劃線的字串。我需要將這些資料拆分成幾個不同的行并為此使用以下公式:=TRANSPOSE(SPLIT(A3,"_"))
下一列應該只包含數字,但問題是這些數字中的一個(在此特定示例中包含“tb”)應該除以或乘以特定數字(在本例中乘以 1000)。
我已經嘗試了以下公式,只要沒有“tb”或者它位于字串的開頭,它就有效: =IF(REGEXMATCH(A6,"tb"),REGEXEXTRACT(A6,"(\d )tb")*1000,REGEXEXTRACT(B6,"(\d )"))
如果它位于字串中間或末尾的某個位置,則只有第一個數字仍然會進行數學運算。我想知道是否有一種方法可以在不求助于復雜公式的情況下獲得我想要的結果(我對此很陌生,理想情況下希望使用我可以理解并可以輕松修改其他類似任務的公式)。下面可以看到一個用于更好可視化的示例表。提前致謝!
| 原始資料 | 拆分資料 | 提取的數字(我得到的) | 期望的結果 |
|---|---|---|---|
| 5tb_200gb_300mb | 5TB | 5000 | 5000 |
| 200GB | 200 | 200 | |
| 300mb | 300 | 300 | |
| 2tb_500gb_50mb | 2TB | 2000 | 2000 |
| 500GB | 500 | 500 | |
| 50mb | 50 | 50 | |
| 500gb_50mb_2tb | 500GB | 2000 | 500 |
| 50mb | 50 | 50 | |
| 2TB | 2個 | 2000 |
uj5u.com熱心網友回復:
盡量不要放入tb第一個 REGEXEXTRACT:
=IF(REGEXMATCH(A6,"tb"),REGEXEXTRACT(A6,"(\d )")*1000,REGEXEXTRACT(B6,"(\d )"))
編輯
選項2:提取“tb”之前相鄰的數字
=IF(REGEXMATCH(A6,"tb"),REGEXEXTRACT(A6,"(\d )tb")*1000,REGEXEXTRACT(B6,"(\d )"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/537025.html
