У меня есть все мои теги Dell в 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.)

2 ответа2

1

В Excel 2013 есть возможность выполнить это с помощью функции DECIMAL .

В этом примере предполагается, что значения вашего тега обслуживания находятся в столбце A. Поместите эту формулу туда, где вы должны быть кодом экспресс-обслуживания.

=DECIMAL(A1, 36)

Эта формула сообщает Excel 2013, что число в A1 является основанием 36 и преобразовывает его в эквивалентное десятичное значение.

Вам нужно будет отформатировать ячейки в столбце как ###-###-###-##

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, указанный в другом ответе: ###-###-###-##

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .