
我使用的線上經紀商的網站一定是全世界功能最差的!它們不提供「匯出」功能,而是告訴使用者只需從瀏覽器中呈現的表格複製數據,然後將其貼上到 Excel 中。 (真的嗎!)
令人驚訝的是,Excel(2016,適用於 Mac)可以將「正文本數字」轉換為可以由數值函數(SUM
通常)進行操作的實際數字。然而,「負文本數字」已經違背了我發現的所有轉換為負數的努力。
「正文本號碼」是:123.45 美元
「負文號」是: -$543.21 (注意前導文 char hyphen
)
編輯:
「負文字編號」是: – $299.55 (發現主角是不是Ahyphen
;它可能是一個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
我建議:
- 提取符號後的值
$
,不使用固定位置 - 透過檢查符號前的符號來檢查值符號
$
。
所以公式可能是
=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
- 大於前一個文字中的字元數的數字
這些值可以替換為包含所有可能的“減號”符號(分別為Z1
和1+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 列包含所有替換的最終公式。
計算失敗在哪裡?