我所有的戴尔标签都在 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并将其转换为等效的十进制值。
您必须自定义格式化列中的单元格以###-###-###-##