Страницы: 1
RSS
Обход ошибки из двоичной в десятичную систему
 
Добрый день.

В ексель есть ограничение при переводе из двоичной в десятичную систему, где итоговое число не должно быть более 511.

Надо что бы корректно происходило преобразование в ячейке (с десятичными числами) при смене значения в ячейке (с двоичными числами) на автомате.

Возможно ли как-то обойти формульно эту ошибку? Если да, то как, если нет, то тоже как?:)

Спасибо.
Изменено: Виталина Филатова - 15.06.2021 07:06:17
 
Цитата
Виталина Филатова написал:
В ексель есть ограничение
и в чём тогда "ошибка"?
Соблюдение правил форума не освобождает от модераторского произвола
 
У меня ексель 2019, по вашей формуле не вышло. В личку так же скинула скрин.
 
Цитата
Виталина Филатова написал:
У меня ексель 2019
значит ждите решальщиков из более ранних версий
Цитата
Виталина Филатова написал:
В личку так же скинула скрин
напрасно, личка не для решения ваших задач, тут форум
Соблюдение правил форума не освобождает от модераторского произвола
 
Какая версия экселя у вас? Проще скорее в другой версии эту формулу проверить.
 
Цитата
Виталина Филатова написал:
Какая версия экселя у вас?
как бы в профиле черным по зеленому - 365
Изменено: buchlotnik - 15.06.2021 08:50:27
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
Виталина Филатова написал:
если нет, то тоже как?
Пользовательская функция для перевода из различных систем счисления (planetaexcel.ru)
 
Можно так (формулисты, возможно, оптимизируют):
Код
=СУММПРОИЗВ(ПСТР(A1;СТРОКА(A1:ИНДЕКС(A:A;ДЛСТР(A1)));1)*(2^(ДЛСТР(A1)-СТРОКА(A1:ИНДЕКС(A:A; ДЛСТР(A1))))))
Изменено: sokol92 - 15.06.2021 13:57:08 (Убрал пробелы)
Владимир
 
Цитата
Виталина Филатова написал:
Возможно ли как-то обойти формульно эту ошибку?
Код
=ПСТР($A1;12;1)*СТЕПЕНЬ(2;12-12)+ПСТР($A1;11;1)*СТЕПЕНЬ(2;12-11)+ПСТР($A1;10;1)*СТЕПЕНЬ(2;12-10)+ПСТР($A1;9;1)*СТЕПЕНЬ(2;12-9)+ПСТР($A1;8;1)*СТЕПЕНЬ(2;12-8)+ПСТР($A1;7;1)*СТЕПЕНЬ(2;12-7)+ПСТР($A1;6;1)*СТЕПЕНЬ(2;12-6)+ПСТР($A1;5;1)*СТЕПЕНЬ(2;12-5)+ПСТР($A1;4;1)*СТЕПЕНЬ(2;12-4)+ПСТР($A1;3;1)*СТЕПЕНЬ(2;12-3)+ПСТР($A1;2;1)*СТЕПЕНЬ(2;12-2)+ПСТР($A1;1;1)*СТЕПЕНЬ(2;12-1)
 
Код
=СУММПРОИЗВ(--ПСТР($A$1;ПОСЛЕД(12);1);СТЕПЕНЬ(2;ABS(ПОСЛЕД(12;;0)-11)))
 
Цитата
Виталина Филатова написал:
У меня ексель 2019
Функция ПОСЛЕД доступна только в Excel для Microsoft 365.
Владимир
 
Код
=СУММПРОИЗВ(--ПСТР($A$1;{1:2:3:4:5:6:7:8:9:10:11:12};1);СТЕПЕНЬ(2;{11:10:9:8:7:6:5:4:3:2:1:0}))
 
Цитата
sokol92 написал:
Функция ПОСЛЕД доступна только в Excel для Microsoft 365.
Да, это уже стало ясно, как только прояснилось, что это 365.
 
К #12: 2^40 вполне может быть. :)  
Изменено: sokol92 - 15.06.2021 14:43:54
Владимир
 
Ребят всем спасибо кто откликнулся и помог с решениями.
Забавно получилось, после последнего сообщения в этой ветке от МатросНаЗебре я поняла, что проблема открытая, продолжила думать и мне ничего лучше не пришло, как разложить каждую цифру в отдельную ячейку, а потом в другой ячейке собрать по этой формуле
=(((((((((((A1*2)*2)*2)*2)*2)*2)*2)*2)*2)*2)*2)+(((((((((((B1*2)*2)*2)*2)*2)*2)*2)*2)*2)*2))+(((((((((C1*2)*2)*2)*2)*2)*2)*2)*2)*2)+((((((((D1*2)*2)*2)*2)*2)*2)*2)*2)+(((((((E1*2)*2)*2)*2)*2)*2)*2)+((((((F1*2)*2)*2)*2)*2)*2)+(((((G1*2)*2)*2)*2)*2)+((((H1*2)*2)*2)*2)+(((I1*2)*2)*2)+((G1*2)*2)+(K1*2)+(L1)
Согласна, что сильно растянуто, но главное оказалось верным рабочим способом на тот момент, а где-то 1,5 часа спустя, стали появляться тут сообщения с решениями более сжатыми. Спасибо большое :)
 
Можно так:
Код
=СУММПРОИЗВ(ОСТАТ(ОТБР(H8/2^(СТРОКА(1:15)-1));2);10^(СТРОКА(1:15)-1))
но только до 15 двоичных разрядов.
Страницы: 1
Наверх