將帶有前導破折號的文字字串轉換為負數

將帶有前導破折號的文字字串轉換為負數

我使用的線上經紀商的網站一定是全世界功能最差的!它們不提供「匯出」功能,而是告訴使用者只需從瀏覽器中呈現的表格複製數據,然後將其貼上到 Excel 中。 (真的嗎!)

令人驚訝的是,Excel(2016,適用於 Mac)可以將「正文本數字」轉換為可以由數值函數(SUM通常)進行操作的實際數字。然而,「負文本數字」已經違背了我發現的所有轉換為負數的努力。

「正文本號碼」是:123.45 美元
「負文號」是: -$543.21 (注意前導文 char hyphen

編輯:
「負文字編號」是: – $299.55 (發現主角是不是A hyphen;它可能是一個em dash
對於造成的混亂,我深表歉意...我現在想知道什麼樣的程式設計師可能會在充滿數字的網頁中使用 anem dash而不是 a ,但這對我來說是一個問題minus sign/hyphen網路經紀商

我可以在儲存格 A1 中轉換“正文數字”,如下所示:=VALUE(RIGHT(A1,6))

但這不適用於「負文號」。它得到了正確的數字,但丟失了負號。我嘗試過更改該chars值,但這沒有幫助。

我也嘗試過以下操作,但沒有成功:
1.乘以1
2.文字到列
3.格式化單元格...

除了手動重新輸入之外,還有其他方法可以做到這一點嗎?

答案1

我想我找到了一個簡單的解決方案。在帶有前導電破折號的單元格之一中,反白並僅複製長破折號。使用 Excel 的「尋找和取代」功能,將破折號貼到「尋找內容」區塊中,然後在「替換為」區塊中鍵入減號。將替換套用到您想要轉換的所有儲存格。

答案2

如果儲存格 A1 包含文字其格式為“$123.45”或“-$543.21”,您可以使用下列公式取得數值。

=IF(LEFT(A1,1)="-",0-VALUE(RIGHT(A1,LEN(A1)-1)),VALUE(A1))

如果文字以“-”開頭,這將獲取“-”之後所有內容的值並將其設為負數。

答案3

我建議:

  1. 提取符號後的值$,不使用固定位置
  2. 透過檢查符號前的符號來檢查值符號$

所以公式可能是

=IF(IF(ISERROR(FIND(MID(A1,FIND("$",A1)-1,1),"<dash><hyphen>")),3,FIND(MID(A1,FIND("$",A1)-1,1),"<dash><hyphen>"))<3,-MID(A1,FIND("$",A1)+1,LEN(A1)),0+MID(A1,FIND("$",A1)+1,LEN(A1)))

在哪裡

"<dash><hyphen>"- 可能帶有負號的文字(以任意順序用適當的字元替換佔位符,這樣您就可以在所示情況下獲得 2 個符號的文字)

3- 大於前一個文字中的字元數的數字

這些值可以替換為包含所有可能的“減號”符號(分別為Z11+LENGTH(Z1))的單元格的參考。


更新。調試公式。

在空工作表上建立一個表。

將 4 個不同的值插入 A 列(不含/帶前導空格、正數/負數)。

插入以下公式:

Cell          Formula                      Meaning
-------------------------------------------------------------
$B$1          =IF(I1,-G1,0+G1)             Result
$C$1          =LEN(A1)                     Data length in source
$D$1          =FIND("$",A1)                $ position in source
$E$1          =MID(A1,D1-1,1)              symbol before $
$F$1          =FIND(E1,"<dash><hyphen>")   symbol before $ position in hyphens list
$G$1          =MID(A1,D1+1,C1)             number from source
$H$1          =ISERROR(F1)                 correction when no symbol before $ in list
$I$1          =IF(H1,3,F1)<3               define is a source positive or negative

將此公式包複製到第 2-4 行。檢查您是否獲得以下輸出:

     A        B      C   D   E      F       G    H       I
1    $123     123    4   1   #VAL!  #VAL!   123  TRUE    FALSE   
2    -$234    -234   5   2   -      1       234  FALSE   TRUE    
3      $345   345    6   3          #VAL!   345  TRUE    FALSE   
4      -$456  -456   7   4   -      1       456  FALSE   TRUE    

CI 列包含單一計算步驟,B 列包含所有替換的最終公式。

計算失敗在哪裡?

相關內容