我的所有戴爾標籤都保存在 Excel 中。我想把短的變成長的。我需要將小程式碼轉換為 BigDecimal,這可以在 Excel 中完成嗎?
例如:
So Simple
Typical Service Tag 5RFDP01
Its Express Service Code
125-423-316-01
The dashes are the only thing that might throw you.
The Service Tag is just a big base-36 number (composed of digits [0-9A-Z]) so,
Convert it to a big decimal number (12,542,331,601), then
Add dashes every third digit starting from the left-most (MSD) digit
(This step is not necessary, but really does make the number a little easier to use.)
答案1
這有點複雜,但即使您沒有DECIMAL
可用的函數,這也可以在公式中實現。以下公式將實現此目的:
= (IFERROR(MID(A1,1,1) + 55, CODE(MID(A1,1,1))) - 55) * 36^6
+ (IFERROR(MID(A1,2,1) + 55, CODE(MID(A1,2,1))) - 55) * 36^5
+ (IFERROR(MID(A1,3,1) + 55, CODE(MID(A1,3,1))) - 55) * 36^4
+ (IFERROR(MID(A1,4,1) + 55, CODE(MID(A1,4,1))) - 55) * 36^3
+ (IFERROR(MID(A1,5,1) + 55, CODE(MID(A1,5,1))) - 55) * 36^2
+ (IFERROR(MID(A1,6,1) + 55, CODE(MID(A1,6,1))) - 55) * 36^1
+ (IFERROR(MID(A1,7,1) + 55, CODE(MID(A1,7,1))) - 55) * 36^0
此IFERROR
功能需要 Excel 2007 或更高版本。此外,此公式假設您的服務標籤位於儲存格 A1 中。
要獲得正確的格式,您可以使用自訂格式,如另一個答案中所述的 CharlieRB:###-###-###-##
答案2
Excel 2013 能夠使用下列命令執行此操作DECIMAL
功能。
此範例假設您的服務標籤值位於 A 欄中。
=DECIMAL(A1, 36)
此公式告訴 Excel 2013 中的數字A1
是基數 36並將其轉換為等效的十進制值。
您必須自訂列中儲存格的格式###-###-###-##