Как разбить числовую последовательность по ячейкам
bmv98rus
Дата: Четверг, 21.09.2023, 08:56 |
Сообщение № 21
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
можно избавиться от ЕСЛИОШИБКА:
тогда и от минусов Код
=LOOKUP(2;1/(7= MMULT(((0&MID($B3;{1\2\3\4\5\6\7}+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$128)-1);{0\1\2\3\4\5\6});0;));MID(DEC2BIN(ROW($1:$128)-1;7);{7\6\5\4\3\2\1};1)+1))-32<0)*(7+LEN(SUBSTITUTE(DEC2BIN(ROW($1:$128)-1);0;))=LEN($B3));{1;1;1;1;1;1;1})); MID($B3;COLUMN(A1)+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$128)-1);COLUMN(A1)-1);0;));1+MID(DEC2BIN(ROW($1:$128)-1;7);8-COLUMN(A1);1)))
можно избавиться от ЕСЛИОШИБКА:
тогда и от минусов Код
=LOOKUP(2;1/(7= MMULT(((0&MID($B3;{1\2\3\4\5\6\7}+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$128)-1);{0\1\2\3\4\5\6});0;));MID(DEC2BIN(ROW($1:$128)-1;7);{7\6\5\4\3\2\1};1)+1))-32<0)*(7+LEN(SUBSTITUTE(DEC2BIN(ROW($1:$128)-1);0;))=LEN($B3));{1;1;1;1;1;1;1})); MID($B3;COLUMN(A1)+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$128)-1);COLUMN(A1)-1);0;));1+MID(DEC2BIN(ROW($1:$128)-1;7);8-COLUMN(A1);1)))
bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение можно избавиться от ЕСЛИОШИБКА:
тогда и от минусов Код
=LOOKUP(2;1/(7= MMULT(((0&MID($B3;{1\2\3\4\5\6\7}+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$128)-1);{0\1\2\3\4\5\6});0;));MID(DEC2BIN(ROW($1:$128)-1;7);{7\6\5\4\3\2\1};1)+1))-32<0)*(7+LEN(SUBSTITUTE(DEC2BIN(ROW($1:$128)-1);0;))=LEN($B3));{1;1;1;1;1;1;1})); MID($B3;COLUMN(A1)+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$128)-1);COLUMN(A1)-1);0;));1+MID(DEC2BIN(ROW($1:$128)-1;7);8-COLUMN(A1);1)))
Автор - bmv98rus Дата добавления - 21.09.2023 в 08:56
прохожий2019
Дата: Четверг, 21.09.2023, 09:29 |
Сообщение № 22
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация:
327
±
Замечаний:
0% ±
365 Beta Channel
финишный на текстовых в данном случае вывел все варианты через "или", последний шаг легко заменяется на ИНДЕКС(r;номер_варианта) [vba]Код
=LET( b;ДЕС.В.ДВ(ПОСЛЕД(128;;0);7); n;14-ДЛСТР(A1); f;ФИЛЬТР(b;ОСТАТ(b;9)=n); m;LET(x;ПОДСТАВИТЬ(ПОДСТАВИТЬ(f;"0";"00-");"1";"0-");ЛЕВБ(x;ДЛСТР(x)-1)); t;ТЕКСТ(A1;m); g;LAMBDA(y;LET(z;--ТЕКСТРАЗД(y;"-");(МИН(z)>0)*(МАКС(z)<32)*ЕОШ(ПОИСК("-0";y)))); r;ФИЛЬТР(t;MAP(t;g)); ОБЪЕДИНИТЬ(" или ";;r))
[/vba]
финишный на текстовых в данном случае вывел все варианты через "или", последний шаг легко заменяется на ИНДЕКС(r;номер_варианта) [vba]Код
=LET( b;ДЕС.В.ДВ(ПОСЛЕД(128;;0);7); n;14-ДЛСТР(A1); f;ФИЛЬТР(b;ОСТАТ(b;9)=n); m;LET(x;ПОДСТАВИТЬ(ПОДСТАВИТЬ(f;"0";"00-");"1";"0-");ЛЕВБ(x;ДЛСТР(x)-1)); t;ТЕКСТ(A1;m); g;LAMBDA(y;LET(z;--ТЕКСТРАЗД(y;"-");(МИН(z)>0)*(МАКС(z)<32)*ЕОШ(ПОИСК("-0";y)))); r;ФИЛЬТР(t;MAP(t;g)); ОБЪЕДИНИТЬ(" или ";;r))
[/vba] прохожий2019
Ответить
Сообщение финишный на текстовых в данном случае вывел все варианты через "или", последний шаг легко заменяется на ИНДЕКС(r;номер_варианта) [vba]Код
=LET( b;ДЕС.В.ДВ(ПОСЛЕД(128;;0);7); n;14-ДЛСТР(A1); f;ФИЛЬТР(b;ОСТАТ(b;9)=n); m;LET(x;ПОДСТАВИТЬ(ПОДСТАВИТЬ(f;"0";"00-");"1";"0-");ЛЕВБ(x;ДЛСТР(x)-1)); t;ТЕКСТ(A1;m); g;LAMBDA(y;LET(z;--ТЕКСТРАЗД(y;"-");(МИН(z)>0)*(МАКС(z)<32)*ЕОШ(ПОИСК("-0";y)))); r;ФИЛЬТР(t;MAP(t;g)); ОБЪЕДИНИТЬ(" или ";;r))
[/vba] Автор - прохожий2019 Дата добавления - 21.09.2023 в 09:29
bmv98rus
Дата: Четверг, 21.09.2023, 10:45 |
Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
Скучно становится в новых версиях, творчества все меньше и меньше.
Скучно становится в новых версиях, творчества все меньше и меньше. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение Скучно становится в новых версиях, творчества все меньше и меньше. Автор - bmv98rus Дата добавления - 21.09.2023 в 10:45
Светлый
Дата: Четверг, 21.09.2023, 10:52 |
Сообщение № 24
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
Да и от СТОЛБЕЦов тоже:Код
=ПРОСМОТР(2;1/(7= МУМНОЖ(((0&ПСТР($B3;$C$2:$I$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);$B$2:$H$2);0;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-$C$2:$I$2;1)+1))-32<0)*(7+ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=ДЛСТР($B3));{1:1:1:1:1:1:1})); ПСТР($B3;C$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);B$2);0;));1+ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-C$2;1)))
Да и от СТОЛБЕЦов тоже:Код
=ПРОСМОТР(2;1/(7= МУМНОЖ(((0&ПСТР($B3;$C$2:$I$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);$B$2:$H$2);0;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-$C$2:$I$2;1)+1))-32<0)*(7+ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=ДЛСТР($B3));{1:1:1:1:1:1:1})); ПСТР($B3;C$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);B$2);0;));1+ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-C$2;1)))
Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Четверг, 21.09.2023, 10:55
Ответить
Сообщение Да и от СТОЛБЕЦов тоже:Код
=ПРОСМОТР(2;1/(7= МУМНОЖ(((0&ПСТР($B3;$C$2:$I$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);$B$2:$H$2);0;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-$C$2:$I$2;1)+1))-32<0)*(7+ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=ДЛСТР($B3));{1:1:1:1:1:1:1})); ПСТР($B3;C$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);B$2);0;));1+ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-C$2;1)))
Автор - Светлый Дата добавления - 21.09.2023 в 10:52
прохожий2019
Дата: Четверг, 21.09.2023, 10:54 |
Сообщение № 25
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация:
327
±
Замечаний:
0% ±
365 Beta Channel
творчества все меньше и меньше
не скажи - просто немножко меняется алгоритм работы подсократил лишнее: [vba]Код
=LET( b;ДЕС.В.ДВ(ПОСЛЕД(128;;0);7); t;ТЕКСТ(B3;LET(x;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ФИЛЬТР(b;ОСТАТ(b;9)=14-ДЛСТР(B3));"0";"00-");"1";"0-");ЛЕВБ(x;ДЛСТР(x)-1))); ОБЪЕДИНИТЬ(" или ";;ФИЛЬТР(t;MAP(t;LAMBDA(y;(МАКС(--ТЕКСТРАЗД(y;"-"))<32)*ЕОШ(ПОИСК("-0";y)))))))
[/vba]
творчества все меньше и меньше
не скажи - просто немножко меняется алгоритм работы подсократил лишнее: [vba]Код
=LET( b;ДЕС.В.ДВ(ПОСЛЕД(128;;0);7); t;ТЕКСТ(B3;LET(x;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ФИЛЬТР(b;ОСТАТ(b;9)=14-ДЛСТР(B3));"0";"00-");"1";"0-");ЛЕВБ(x;ДЛСТР(x)-1))); ОБЪЕДИНИТЬ(" или ";;ФИЛЬТР(t;MAP(t;LAMBDA(y;(МАКС(--ТЕКСТРАЗД(y;"-"))<32)*ЕОШ(ПОИСК("-0";y)))))))
[/vba]прохожий2019
Ответить
Сообщение творчества все меньше и меньше
не скажи - просто немножко меняется алгоритм работы подсократил лишнее: [vba]Код
=LET( b;ДЕС.В.ДВ(ПОСЛЕД(128;;0);7); t;ТЕКСТ(B3;LET(x;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ФИЛЬТР(b;ОСТАТ(b;9)=14-ДЛСТР(B3));"0";"00-");"1";"0-");ЛЕВБ(x;ДЛСТР(x)-1))); ОБЪЕДИНИТЬ(" или ";;ФИЛЬТР(t;MAP(t;LAMBDA(y;(МАКС(--ТЕКСТРАЗД(y;"-"))<32)*ЕОШ(ПОИСК("-0";y)))))))
[/vba]Автор - прохожий2019 Дата добавления - 21.09.2023 в 10:54
bmv98rus
Дата: Четверг, 21.09.2023, 11:05 |
Сообщение № 26
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
ну это уже читерство ибо это доп. данные.не скажи - просто немножко меняется алгоритм работы
ну я про то что с новыми функциями многое в разы проще и быстрее. Скорости для сравнения замерь пож. последних вариантов. просто интересно.
ну это уже читерство ибо это доп. данные.не скажи - просто немножко меняется алгоритм работы
ну я про то что с новыми функциями многое в разы проще и быстрее. Скорости для сравнения замерь пож. последних вариантов. просто интересно.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение ну это уже читерство ибо это доп. данные.не скажи - просто немножко меняется алгоритм работы
ну я про то что с новыми функциями многое в разы проще и быстрее. Скорости для сравнения замерь пож. последних вариантов. просто интересно.Автор - bmv98rus Дата добавления - 21.09.2023 в 11:05
прохожий2019
Дата: Четверг, 21.09.2023, 11:55 |
Сообщение № 27
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация:
327
±
Замечаний:
0% ±
365 Beta Channel
Скорости для сравнения замерь пож.
как-то так )))
Скорости для сравнения замерь пож.
как-то так )))прохожий2019
Сообщение отредактировал прохожий2019 - Четверг, 21.09.2023, 11:56
Ответить
Сообщение Скорости для сравнения замерь пож.
как-то так )))Автор - прохожий2019 Дата добавления - 21.09.2023 в 11:55
прохожий2019
Дата: Четверг, 21.09.2023, 12:01 |
Сообщение № 28
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация:
327
±
Замечаний:
0% ±
365 Beta Channel
может я что не так делаю, но 207117171110 разбивает как 2-07-1-17-17-11-10 вроде поскольку числа без ведущих нулей на входе корректным является только 20-7-...
может я что не так делаю, но 207117171110 разбивает как 2-07-1-17-17-11-10 вроде поскольку числа без ведущих нулей на входе корректным является только 20-7-... прохожий2019
Ответить
Сообщение может я что не так делаю, но 207117171110 разбивает как 2-07-1-17-17-11-10 вроде поскольку числа без ведущих нулей на входе корректным является только 20-7-... Автор - прохожий2019 Дата добавления - 21.09.2023 в 12:01
Светлый
Дата: Четверг, 21.09.2023, 12:10 |
Сообщение № 29
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
разбивает как 2-07-1-17-17-11-10
Формула не проверяет разбивку с ведущим нулём. Просто разными комбинациями разбивает исходный текст на 1 и 2-х символьные фрагменты. Можно, конечно и это проверять, но формула опять усложнится:Код
=ПРОСМОТР(2;1/(7= МУМНОЖ(((0&ПСТР($B3;$C$2:$I$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);$B$2:$H$2);0;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-$C$2:$I$2;1)+1))-32<0)*(ПСТР($B3;$C$2:$I$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);$B$2:$H$2);0;));1)<>"0")*(7+ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=ДЛСТР($B3));{1:1:1:1:1:1:1})); ПСТР($B3;C$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);B$2);0;));1+ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-C$2;1)))
разбивает как 2-07-1-17-17-11-10
Формула не проверяет разбивку с ведущим нулём. Просто разными комбинациями разбивает исходный текст на 1 и 2-х символьные фрагменты. Можно, конечно и это проверять, но формула опять усложнится:Код
=ПРОСМОТР(2;1/(7= МУМНОЖ(((0&ПСТР($B3;$C$2:$I$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);$B$2:$H$2);0;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-$C$2:$I$2;1)+1))-32<0)*(ПСТР($B3;$C$2:$I$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);$B$2:$H$2);0;));1)<>"0")*(7+ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=ДЛСТР($B3));{1:1:1:1:1:1:1})); ПСТР($B3;C$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);B$2);0;));1+ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-C$2;1)))
Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Четверг, 21.09.2023, 12:17
Ответить
Сообщение разбивает как 2-07-1-17-17-11-10
Формула не проверяет разбивку с ведущим нулём. Просто разными комбинациями разбивает исходный текст на 1 и 2-х символьные фрагменты. Можно, конечно и это проверять, но формула опять усложнится:Код
=ПРОСМОТР(2;1/(7= МУМНОЖ(((0&ПСТР($B3;$C$2:$I$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);$B$2:$H$2);0;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-$C$2:$I$2;1)+1))-32<0)*(ПСТР($B3;$C$2:$I$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);$B$2:$H$2);0;));1)<>"0")*(7+ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=ДЛСТР($B3));{1:1:1:1:1:1:1})); ПСТР($B3;C$2+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);B$2);0;));1+ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-C$2;1)))
Автор - Светлый Дата добавления - 21.09.2023 в 12:10
прохожий2019
Дата: Четверг, 21.09.2023, 12:22 |
Сообщение № 30
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация:
327
±
Замечаний:
0% ±
365 Beta Channel
Формула не проверяет разбивку с ведущим нулём
да я ж без претензий - нам задачу чётко никто не формализовывал ))) просто показалось, что без ведущих нулей корректнее
Формула не проверяет разбивку с ведущим нулём
да я ж без претензий - нам задачу чётко никто не формализовывал ))) просто показалось, что без ведущих нулей корректнеепрохожий2019
Ответить
Сообщение Формула не проверяет разбивку с ведущим нулём
да я ж без претензий - нам задачу чётко никто не формализовывал ))) просто показалось, что без ведущих нулей корректнееАвтор - прохожий2019 Дата добавления - 21.09.2023 в 12:22
bmv98rus
Дата: Четверг, 21.09.2023, 13:21 |
Сообщение № 31
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
нам задачу чётко никто не формализовывал )))
да и интерес у ТС к ней потерян.что без ведущих нулей корректнее
мне тоже так кажется, хотя знать бы что за последовательность, что означает, но что-то мне подсказывает что ведущих нулей быть не должно. ибо еслиб они были то последовательность бы просто разбивалась по 2 символа. ну, смотри как разогнали от первого варианта.
нам задачу чётко никто не формализовывал )))
да и интерес у ТС к ней потерян.что без ведущих нулей корректнее
мне тоже так кажется, хотя знать бы что за последовательность, что означает, но что-то мне подсказывает что ведущих нулей быть не должно. ибо еслиб они были то последовательность бы просто разбивалась по 2 символа. ну, смотри как разогнали от первого варианта.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение нам задачу чётко никто не формализовывал )))
да и интерес у ТС к ней потерян.что без ведущих нулей корректнее
мне тоже так кажется, хотя знать бы что за последовательность, что означает, но что-то мне подсказывает что ведущих нулей быть не должно. ибо еслиб они были то последовательность бы просто разбивалась по 2 символа. ну, смотри как разогнали от первого варианта.Автор - bmv98rus Дата добавления - 21.09.2023 в 13:21
прохожий2019
Дата: Четверг, 21.09.2023, 13:44 |
Сообщение № 32
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация:
327
±
Замечаний:
0% ±
365 Beta Channel
знать бы что за последовательность, что означает
ну судя по ограничениям - это номера дней в месяце, где-то в первых сообщениях я предполагал, что они просто слиплись при выгрузке откуда-то, но ТС и правда потерял интерес, может быть множество вариантов разбивки его спугнуло )))
знать бы что за последовательность, что означает
ну судя по ограничениям - это номера дней в месяце, где-то в первых сообщениях я предполагал, что они просто слиплись при выгрузке откуда-то, но ТС и правда потерял интерес, может быть множество вариантов разбивки его спугнуло )))прохожий2019
Ответить
Сообщение знать бы что за последовательность, что означает
ну судя по ограничениям - это номера дней в месяце, где-то в первых сообщениях я предполагал, что они просто слиплись при выгрузке откуда-то, но ТС и правда потерял интерес, может быть множество вариантов разбивки его спугнуло )))Автор - прохожий2019 Дата добавления - 21.09.2023 в 13:44
Светлый
Дата: Четверг, 21.09.2023, 14:27 |
Сообщение № 33
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
множество вариантов разбивки его спугнуло
Тогда ещё нагоним страху. Во многих случаях решение находит:Код
=МАКС(ТЕКСТ(ПСТР($B3;СУММ(ДЛСТР($AX3:AX3);1);{1;2})-32;"-32;-0;-32")+32)
множество вариантов разбивки его спугнуло
Тогда ещё нагоним страху. Во многих случаях решение находит:Код
=МАКС(ТЕКСТ(ПСТР($B3;СУММ(ДЛСТР($AX3:AX3);1);{1;2})-32;"-32;-0;-32")+32)
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение множество вариантов разбивки его спугнуло
Тогда ещё нагоним страху. Во многих случаях решение находит:Код
=МАКС(ТЕКСТ(ПСТР($B3;СУММ(ДЛСТР($AX3:AX3);1);{1;2})-32;"-32;-0;-32")+32)
Автор - Светлый Дата добавления - 21.09.2023 в 14:27
bmv98rus
Дата: Четверг, 21.09.2023, 16:25 |
Сообщение № 34
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
это когда хватит символов.
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение это когда хватит символов. Автор - bmv98rus Дата добавления - 21.09.2023 в 16:25
прохожий2019
Дата: Пятница, 22.09.2023, 13:07 |
Сообщение № 35
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация:
327
±
Замечаний:
0% ±
365 Beta Channel
ну, смотри как разогнали от первого варианта
ну, собственно, я тоже скрипел мозгами - и посему жадный вариант с уходом от полного перебора: [vba]Код
=LET( l;ДЛСТР(H61); x;ПСТР(H61;ПОСЛЕД(l);1); y;РАЗВЕРНУТЬ(СБРОСИТЬ(x;1);l;;0); r;10*x+y; rr;SCAN(0;r;LAMBDA(s;c;ЕСЛИ(s>1;0;ЕСЛИ(c>31;1;ЕСЛИ(ПРАВБ(c)="0";3;2))))); n;7-СУММ(--(rr>0)); t;СЦЕП(rr); if;ЕСЛИ(--ПРАВБ(t)>1;ЛЕВБ(t;ДЛСТР(t)-1)&"1";t); tt;ЕСЛИ(n=0;if;REDUCE(if;ПОСЛЕД(n);LAMBDA(s;c;ПОДСТАВИТЬ(s;"20";"11";1)))); ttt;ПОДСТАВИТЬ(tt;"0";""); ТЕКСТ(H61;ОБЪЕДИНИТЬ("-";;ЕСЛИ(ПСТР(ttt;ПОСЛЕД(7);1)="1";"0";"00"))))
[/vba] не очень симпатично - не причёсывал, но зато по скорости:
ну, смотри как разогнали от первого варианта
ну, собственно, я тоже скрипел мозгами - и посему жадный вариант с уходом от полного перебора: [vba]Код
=LET( l;ДЛСТР(H61); x;ПСТР(H61;ПОСЛЕД(l);1); y;РАЗВЕРНУТЬ(СБРОСИТЬ(x;1);l;;0); r;10*x+y; rr;SCAN(0;r;LAMBDA(s;c;ЕСЛИ(s>1;0;ЕСЛИ(c>31;1;ЕСЛИ(ПРАВБ(c)="0";3;2))))); n;7-СУММ(--(rr>0)); t;СЦЕП(rr); if;ЕСЛИ(--ПРАВБ(t)>1;ЛЕВБ(t;ДЛСТР(t)-1)&"1";t); tt;ЕСЛИ(n=0;if;REDUCE(if;ПОСЛЕД(n);LAMBDA(s;c;ПОДСТАВИТЬ(s;"20";"11";1)))); ttt;ПОДСТАВИТЬ(tt;"0";""); ТЕКСТ(H61;ОБЪЕДИНИТЬ("-";;ЕСЛИ(ПСТР(ttt;ПОСЛЕД(7);1)="1";"0";"00"))))
[/vba] не очень симпатично - не причёсывал, но зато по скорости:прохожий2019
Сообщение отредактировал прохожий2019 - Пятница, 22.09.2023, 13:07
Ответить
Сообщение ну, смотри как разогнали от первого варианта
ну, собственно, я тоже скрипел мозгами - и посему жадный вариант с уходом от полного перебора: [vba]Код
=LET( l;ДЛСТР(H61); x;ПСТР(H61;ПОСЛЕД(l);1); y;РАЗВЕРНУТЬ(СБРОСИТЬ(x;1);l;;0); r;10*x+y; rr;SCAN(0;r;LAMBDA(s;c;ЕСЛИ(s>1;0;ЕСЛИ(c>31;1;ЕСЛИ(ПРАВБ(c)="0";3;2))))); n;7-СУММ(--(rr>0)); t;СЦЕП(rr); if;ЕСЛИ(--ПРАВБ(t)>1;ЛЕВБ(t;ДЛСТР(t)-1)&"1";t); tt;ЕСЛИ(n=0;if;REDUCE(if;ПОСЛЕД(n);LAMBDA(s;c;ПОДСТАВИТЬ(s;"20";"11";1)))); ttt;ПОДСТАВИТЬ(tt;"0";""); ТЕКСТ(H61;ОБЪЕДИНИТЬ("-";;ЕСЛИ(ПСТР(ttt;ПОСЛЕД(7);1)="1";"0";"00"))))
[/vba] не очень симпатично - не причёсывал, но зато по скорости:Автор - прохожий2019 Дата добавления - 22.09.2023 в 13:07
прохожий2019
Дата: Пятница, 22.09.2023, 16:00 |
Сообщение № 36
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация:
327
±
Замечаний:
0% ±
365 Beta Channel
во, финишный вариант (ещё немножко логику подшаманил): [vba]Код
=LET( r;SCAN(0;ПСТР(B3&"-";ПОСЛЕД(ДЛСТР(B3));2);LAMBDA(s;c;ПЕРЕКЛЮЧ(1=1;s>1;0;ПРАВБ(c)="-";1;--c>31;1;ПРАВБ(c)="0";3;2))); n;7-СУММ(--(r>0)); t;СЦЕП(r); --ТЕКСТРАЗД(ТЕКСТ(B3;ОБЪЕДИНИТЬ("-";;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(ЕСЛИ(n=0;t;REDUCE(t;ПОСЛЕД(n);LAMBDA(s;c;ПОДСТАВИТЬ(s;"20";"11";1))));"0";"");ПОСЛЕД(7);1)="1";"0";"00")));"-"))
[/vba]пы.сы. формула писалась для изначальной темы, в МШ не участвует, более производительное решение не выкладываю - тут приоритеты поменялись
во, финишный вариант (ещё немножко логику подшаманил): [vba]Код
=LET( r;SCAN(0;ПСТР(B3&"-";ПОСЛЕД(ДЛСТР(B3));2);LAMBDA(s;c;ПЕРЕКЛЮЧ(1=1;s>1;0;ПРАВБ(c)="-";1;--c>31;1;ПРАВБ(c)="0";3;2))); n;7-СУММ(--(r>0)); t;СЦЕП(r); --ТЕКСТРАЗД(ТЕКСТ(B3;ОБЪЕДИНИТЬ("-";;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(ЕСЛИ(n=0;t;REDUCE(t;ПОСЛЕД(n);LAMBDA(s;c;ПОДСТАВИТЬ(s;"20";"11";1))));"0";"");ПОСЛЕД(7);1)="1";"0";"00")));"-"))
[/vba]пы.сы. формула писалась для изначальной темы, в МШ не участвует, более производительное решение не выкладываю - тут приоритеты поменялись прохожий2019
Сообщение отредактировал прохожий2019 - Пятница, 22.09.2023, 20:56
Ответить
Сообщение во, финишный вариант (ещё немножко логику подшаманил): [vba]Код
=LET( r;SCAN(0;ПСТР(B3&"-";ПОСЛЕД(ДЛСТР(B3));2);LAMBDA(s;c;ПЕРЕКЛЮЧ(1=1;s>1;0;ПРАВБ(c)="-";1;--c>31;1;ПРАВБ(c)="0";3;2))); n;7-СУММ(--(r>0)); t;СЦЕП(r); --ТЕКСТРАЗД(ТЕКСТ(B3;ОБЪЕДИНИТЬ("-";;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(ЕСЛИ(n=0;t;REDUCE(t;ПОСЛЕД(n);LAMBDA(s;c;ПОДСТАВИТЬ(s;"20";"11";1))));"0";"");ПОСЛЕД(7);1)="1";"0";"00")));"-"))
[/vba]пы.сы. формула писалась для изначальной темы, в МШ не участвует, более производительное решение не выкладываю - тут приоритеты поменялись Автор - прохожий2019 Дата добавления - 22.09.2023 в 16:00
Светлый
Дата: Пятница, 22.09.2023, 18:24 |
Сообщение № 37
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
Я вот думаю, может на МШ эту задачку выложить? У меня есть решение в 132 символа. В исходном наборе ошибок нет. Проверил на крайностях (короткие, длинные, с нулями). Тоже корректно.
Я вот думаю, может на МШ эту задачку выложить? У меня есть решение в 132 символа. В исходном наборе ошибок нет. Проверил на крайностях (короткие, длинные, с нулями). Тоже корректно. Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Пятница, 22.09.2023, 18:28
Ответить
Сообщение Я вот думаю, может на МШ эту задачку выложить? У меня есть решение в 132 символа. В исходном наборе ошибок нет. Проверил на крайностях (короткие, длинные, с нулями). Тоже корректно. Автор - Светлый Дата добавления - 22.09.2023 в 18:24
Serge_007
Дата: Пятница, 22.09.2023, 19:39 |
Сообщение № 38
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
на МШ эту задачку выложить
Выложилесть решение в 132 символа
Такого короткого нет, но будет очень интересно посмотреть)
на МШ эту задачку выложить
Выложилесть решение в 132 символа
Такого короткого нет, но будет очень интересно посмотреть)Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение на МШ эту задачку выложить
Выложилесть решение в 132 символа
Такого короткого нет, но будет очень интересно посмотреть)Автор - Serge_007 Дата добавления - 22.09.2023 в 19:39
Светлый
Дата: Пятница, 22.09.2023, 20:12 |
Сообщение № 39
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
Оперативненько В моём решении есть функции более поздние, чем в 2003 офисе. Так что не по начальным правилам МШ. Сейчас моё решение 130 символов. Создавать формулу с самого начала. Не обязательно ориентироваться на уже опубликованные.
Оперативненько В моём решении есть функции более поздние, чем в 2003 офисе. Так что не по начальным правилам МШ. Сейчас моё решение 130 символов. Создавать формулу с самого начала. Не обязательно ориентироваться на уже опубликованные. Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Оперативненько В моём решении есть функции более поздние, чем в 2003 офисе. Так что не по начальным правилам МШ. Сейчас моё решение 130 символов. Создавать формулу с самого начала. Не обязательно ориентироваться на уже опубликованные. Автор - Светлый Дата добавления - 22.09.2023 в 20:12
bmv98rus
Дата: Суббота, 23.09.2023, 18:16 |
Сообщение № 40
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
[offtop]МШ - не корректное название ибо МШ это методология коллективного поиска решения, то что наблюдали в этой теме до определенного момента. А как только У меня есть решение в 132 символа.
это соревнование, при этом по условно объявленными правилам.[/offtop] Назовите ветку "У кого короче".
[offtop]МШ - не корректное название ибо МШ это методология коллективного поиска решения, то что наблюдали в этой теме до определенного момента. А как только У меня есть решение в 132 символа.
это соревнование, при этом по условно объявленными правилам.[/offtop] Назовите ветку "У кого короче". bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Суббота, 23.09.2023, 19:52
Ответить
Сообщение [offtop]МШ - не корректное название ибо МШ это методология коллективного поиска решения, то что наблюдали в этой теме до определенного момента. А как только У меня есть решение в 132 символа.
это соревнование, при этом по условно объявленными правилам.[/offtop] Назовите ветку "У кого короче". Автор - bmv98rus Дата добавления - 23.09.2023 в 18:16