Преобразование десятичного MAC-адреса в шестнадцатеричный MAC-адрес

Я искал метод преобразования десятичного MAC-адреса в шестнадцатеричный.

Так, например, 170.187.204.0.17.34 для AA:BB:CC:00:11:22 .

Кредиты идут на преобразование HEX в десятичное значение? с примером .

Я поместил свое десятичное значение в столбец А (начало А2), а шестнадцатеричный эквивалент должен перейти в столбец Б (начало В2).

С 170.187.204.0.17.34 в A1 примените текст к столбцам с . как разделитель. В A2 скопировано в F2:

 =DEC2HEX(A1) 

в G2: =A2&":"&B2&":"&C2&":"&D2&":"&E2&":"&F2

Или, в B2 и имея дело с hex для 0 :

 =SUBSTITUTE(DEC2HEX(MID(A2,1,FIND(".",A2)-1))&":"&DEC2HEX(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),1,FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))-1))&":"&DEC2HEX(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),1,FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))-1))&":"&DEC2HEX(MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),1,FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))-1))&":"&DEC2HEX(MID(MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2)),1,FIND(".",MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2)))-1))&":"&DEC2HEX(MID(MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)),FIND(".",MID(MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)),FIND(".",MID(MID(A2,FIND(".",A2)+1,LEN($A2)),FIND(".",MID(A2,FIND(".",A2)+1,LEN($A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2)))+1,LEN(A2))),":0:",":00:") 

Насколько мне нравилось читать код @pnuts, это может быть более простое решение:

 =DEC2HEX(MID(A2,1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",1))+1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",2))+1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",3))+1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",4))+1,3),2)&":"& DEC2HEX(MID(A2,FIND("^",SUBSTITUTE(A2,".","^",5))+1,3),2) 

В первой строке используется тот факт, что DEC2HEX свой параметр:

  • Учитывая 170.187.204.0.17.34, MID возвращает 170, который уже является целым числом.
  • Учитывая 1.9.1.1.1.1, MID возвращает 1.9, который DEC2HEX обрезает до 1.

Линии от двух до шести SUBSTITUTE nth "." с "^", а затем FIND этот символ, возвращая следующие 3 символа. Учитывая 170.187.204.0.17.34, эти функции MID возвращаются:

  • 187
  • 204
  • 0,1
  • 17.
  • 34

Затем они подаются в DEC2HEX .

И мы просто конкатенируем все с двоеточиями.

Выход: AA:BB:CC:00:11:22

  • Преобразование шестнадцатеричной строки в base64 в функцию excel
  • Установите автоматический цвет фона в зависимости от значения HEX в ячейке?
  • Генерация цветов HEX в Excel
  • tell excel обрабатывать шестнадцатеричные значения как текст
  • Как вы можете конвертировать HEX в BIN, по одному символу за раз в EXCEL 2010
  • excel, как использовать собственную ссылку (динамическую) для ячеек диапазона, чтобы добавить условную проверку. Проверить HEX
  • конвертировать отрицательное десятичное число в HEX
  • Почему значения Excel RGB обратные?
  • Давайте будем гением компьютера.