我試圖格式化一個單一的數字存儲爲文本值。使用TEXT公式字符限制進行字符串轉換?
例如,我想轉換:
要:
5145-350002-00500-0080
公式我現在用的就是:
=文字(A1,「0000-000000-00000-0000」)
我收到的輸出是:
5145-350002-00500-
爲什麼最後4個字符「0000」,而不是「0080」爲我所期望的?是否有字符限制,還是我的公式不正確?從Large Number Arithmetic
我試圖格式化一個單一的數字存儲爲文本值。使用TEXT公式字符限制進行字符串轉換?
例如,我想轉換:
要:
5145-350002-00500-0080
公式我現在用的就是:
=文字(A1,「0000-000000-00000-0000」)
我收到的輸出是:
5145-350002-00500-
爲什麼最後4個字符「0000」,而不是「0080」爲我所期望的?是否有字符限制,還是我的公式不正確?從Large Number Arithmetic
報價:
在Excel中的限制是在15個顯著數字。輸入一個16位的 信用卡號和123456789將成爲 123456789.
其實,即使514535000200500 將導致5145-350002-00500-0000
。
而且,看看公式欄當選擇你的輸入單元格 - 我的Excel 2007年,我看到:
希望這是有益的)
編輯:
作爲解決方案來解決任務 - 保持您的數字格式爲文本並使用以下公式:
=LEFT(A1,4)&"-"&MID(A1,5,6)&"-"&MID(A1,11,5)&"-"&RIGHT(A1,4)
投了贊成意見重新:有效數字,但這並沒有解決如何將值轉換爲「5145-350002-00500-0080」 –
的問題謝謝你的解釋/解決方法,但是,正如我在原始問題的值存儲爲TEXT,而不是數字值。 – toolshed
@Addikt我不知道函數是如何工作的,但也許它會將數字字符串變成數字 - 然後上述所有應用... –
這是一個自定義函數。將其放置在工作簿中的常規代碼模塊,您可以通過= FormatLargeNumber(「A1」)調用它在細胞
Public Function FormatLargeNumber(val As String)
'This function parses extremely large numbers per your example.
' Modify as needed.
FormatLargeNumber = Left(val, 4) & "-" _
& Mid(val, 5, 6) & "-" & _
Mid(val, 11, 5) & "-" & _
Right(val, 4)
End Function
但是,正如我在原始問題中所述,值是以TEXT存儲的,而不是數字值,所以感謝您解釋/解決方法。 – toolshed
TEXT()公式將該單元格中的值解釋爲數字,即錯誤的來源。 我提供的函數只要將它作爲文本/字符串存儲,就會轉換(不僅僅是「掩碼」)值。 您確定這些值不是格式化爲文本的數字,而是真正的文本字符串? –
它們是真正的文本字符串。我沒有使用數字類型的主要原因是因爲我需要保留前導零。 Excel提供了一個「建議錯誤」,即TEXT字段可能包含一個數字。我認爲它在使用TEXT方法時將其轉換爲數字。顯然,這不是理想的結果。我意識到我可以使用你提供的功能,我已經完成了(除了我使用內置函數的例外),但我不想。我的問題旨在確定使用TEXT函數是否有更簡單的方法來執行此操作。 – toolshed
當我嘗試在單元格中輸入類似「5145350002005000080」的值作爲一個數字, Excel將其轉換爲5145350002005000000.這個數字是5 sextillion和一些變化。 我懷疑這對Excel來說太簡單了,我認爲它默認情況下會轉換爲科學記數法,這可能會導致不希望的舍入/截斷值。 –
@DavidZemens爲答案增加了可能的解決方案。 –