Как создать формулу Excel для преобразования значения ячейки в шестнадцатеричное число?

Я пытаюсь создать формулы Excel, чтобы найти шестнадцатеричные значения для каждого бита. У меня есть лист Excel, как показано ниже.

Здесь у меня есть 32-битное двоичное значение (пример: от A1 до AE1) и еще одно 32-битное двоичное значение (пример: от A6 до AE6). Моя цель — написать формулы для первого шестнадцатеричного значения (32-битное двоичное значение) и следующего шестнадцатеричного значения (следующее 32-битное двоичное значение). Наконец, мне нужно получить 64-битное значение, объединив первое и второе 32-битные значения.

Результат 1: формат шестнадцатеричного значения (32-битное двоичное значение): 0xFFFFFFFF.

Результат 2: формат шестнадцатеричного значения (следующее 32-битное двоичное значение): 0xFFFFFFFF.

Конечный результат: Шестнадцатеричное значение 64-битного двоичного формата: 0xFFFFFFFFFFFFFFFF.

Как я могу написать три простые формулы, чтобы найти эти три значения Hexa? Любые предложения или пример?


52
2

Ответы:

Уже есть ответ о том, как bin2dec для чисел длиной более 10 бит в Excel, поэтому адаптировать его для своих нужд должно быть достаточно легко. Если у вас Excel 365:

=LET(
    string,TEXTJOIN("", TRUE, A2:AF2),
    dec,SUMPRODUCT(--MID(string,LEN(string)+1-ROW(INDIRECT("1:"&LEN(string))),1),(2^(ROW(INDIRECT("1:"&LEN(string)))-1))),
    DEC2HEX(dec))

Или используйте больше возможностей Excel 365:

=LET(
    string, TEXTJOIN("", TRUE, A2:AF2),
    len, LEN(string),
    dec, SUMPRODUCT(--MID(string, SEQUENCE(len, 1, len, -1), 1), 2^(SEQUENCE(len, 1, 0))),
    DEC2HEX(dec))

Если у вас нет Excel 365, вы можете использовать вспомогательную ячейку.


Решено

Это также может работать с входами с 32 столбцами, но не уверен насчет знакового бита:

=CONCAT("0x", BIN2HEX(MID(CONCAT(--A1:AF1), SEQUENCE(, 4, 1, 8), 8), 2))

=CONCAT(
    "0x",
    BIN2HEX(
        MID(CONCAT(--A1:AF1, --A6:AF6), SEQUENCE(, 8, 1, 8), 8),
        2
    )
)


Интересные вопросы для изучения

Как перечислить все комбинации значений из двух столбцов, разделенных точкой с запятой, в Excel/Sheets?Невозможно использовать динамический именованный диапазон в качестве ряда данных. Что я делаю не так?Подсчитайте количество разбиений внутри ячейкиVBA сталкивается с проблемой с функцией НАЙТИ с помощью WordОшибка при преобразовании данных из Excel в CSV с использованием библиотеки SheetJS и скрипта Google AppsКак перечислить все комбинации значений из двух столбцов, разделенных точкой с запятой, в Excel/Sheets?Невозможно использовать динамический именованный диапазон в качестве ряда данных. Что я делаю не так?Строки, отфильтрованные Power Query на основе значенияКак условно отформатировать несмежные ячейки в Microsoft Excel на основе второго по величине значенияМогут ли функции Lambda использовать текстовые ссылки, переданные из функции ByCol?