Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как разбить числовую последовательность по ячейкам - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: китин  
Как разбить числовую последовательность по ячейкам
bmv98rus Дата: Четверг, 21.09.2023, 08:56 | Сообщение № 21
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Цитата Светлый, 21.09.2023 в 08:21, в сообщении № 20 ()
можно избавиться от ЕСЛИОШИБКА:

тогда и от минусов :D
Код
=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)))


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Цитата Светлый, 21.09.2023 в 08:21, в сообщении № 20 ()
можно избавиться от ЕСЛИОШИБКА:

тогда и от минусов :D
Код
=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]
К сообщению приложен файл: example2873_2_1.xlsx (27.9 Kb)
 
Ответить
Сообщениефинишный на текстовых
в данном случае вывел все варианты через "или", последний шаг легко заменяется на ИНДЕКС(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
Цитата прохожий2019, 21.09.2023 в 09:29, в сообщении № 22 ()
финишный на текстовых
Скучно становится в новых версиях, творчества все меньше и меньше. :D


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Цитата прохожий2019, 21.09.2023 в 09:29, в сообщении № 22 ()
финишный на текстовых
Скучно становится в новых версиях, творчества все меньше и меньше. :D

Автор - 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)))


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Четверг, 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]
К сообщению приложен файл: 7736717.xlsx (30.5 Kb)
 
Ответить
Сообщение
творчества все меньше и меньше
не скажи - просто немножко меняется алгоритм работы
подсократил лишнее:
[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
Цитата Светлый, 21.09.2023 в 10:52, в сообщении № 24 ()
Да и от СТОЛБЕЦов тоже:

ну это уже читерство :D ибо это доп. данные.

Цитата прохожий2019, 21.09.2023 в 10:54, в сообщении № 25 ()
не скажи - просто немножко меняется алгоритм работы
ну я про то что с новыми функциями многое в разы проще и быстрее.
Скорости для сравнения замерь пож. последних вариантов. просто интересно.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Цитата Светлый, 21.09.2023 в 10:52, в сообщении № 24 ()
Да и от СТОЛБЕЦов тоже:

ну это уже читерство :D ибо это доп. данные.

Цитата прохожий2019, 21.09.2023 в 10:54, в сообщении № 25 ()
не скажи - просто немножко меняется алгоритм работы
ну я про то что с новыми функциями многое в разы проще и быстрее.
Скорости для сравнения замерь пож. последних вариантов. просто интересно.

Автор - bmv98rus
Дата добавления - 21.09.2023 в 11:05
прохожий2019 Дата: Четверг, 21.09.2023, 11:55 | Сообщение № 27
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация: 327 ±
Замечаний: 0% ±

365 Beta Channel
Скорости для сравнения замерь пож.

как-то так )))
К сообщению приложен файл: 2377339.jpg (24.8 Kb)


Сообщение отредактировал прохожий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
Цитата Светлый, 21.09.2023 в 10:52, в сообщении № 24 ()
Да и от СТОЛБЕЦов тоже
может я что не так делаю, но 207117171110 разбивает как 2-07-1-17-17-11-10 вроде поскольку числа без ведущих нулей на входе корректным является только 20-7-...
 
Ответить
Сообщение
Цитата Светлый, 21.09.2023 в 10:52, в сообщении № 24 ()
Да и от СТОЛБЕЦов тоже
может я что не так делаю, но 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
Цитата прохожий2019, 21.09.2023 в 12:01, в сообщении № 28 ()
разбивает как 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
 
Ответить
Сообщение
Цитата прохожий2019, 21.09.2023 в 12:01, в сообщении № 28 ()
разбивает как 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
Цитата Светлый, 21.09.2023 в 12:10, в сообщении № 29 ()
Формула не проверяет разбивку с ведущим нулём
да я ж без претензий - нам задачу чётко никто не формализовывал ))) просто показалось, что без ведущих нулей корректнее
 
Ответить
Сообщение
Цитата Светлый, 21.09.2023 в 12:10, в сообщении № 29 ()
Формула не проверяет разбивку с ведущим нулём
да я ж без претензий - нам задачу чётко никто не формализовывал ))) просто показалось, что без ведущих нулей корректнее

Автор - прохожий2019
Дата добавления - 21.09.2023 в 12:22
bmv98rus Дата: Четверг, 21.09.2023, 13:21 | Сообщение № 31
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Цитата прохожий2019, 21.09.2023 в 12:22, в сообщении № 30 ()
нам задачу чётко никто не формализовывал )))
да и интерес у ТС к ней потерян.

Цитата прохожий2019, 21.09.2023 в 12:22, в сообщении № 30 ()
что без ведущих нулей корректнее
мне тоже так кажется, хотя знать бы что за последовательность, что означает, но что-то мне подсказывает что ведущих нулей быть не должно. ибо еслиб они были то последовательность бы просто разбивалась по 2 символа.

Цитата прохожий2019, 21.09.2023 в 11:55, в сообщении № 27 ()
как-то так
ну, смотри как разогнали от первого варианта.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Цитата прохожий2019, 21.09.2023 в 12:22, в сообщении № 30 ()
нам задачу чётко никто не формализовывал )))
да и интерес у ТС к ней потерян.

Цитата прохожий2019, 21.09.2023 в 12:22, в сообщении № 30 ()
что без ведущих нулей корректнее
мне тоже так кажется, хотя знать бы что за последовательность, что означает, но что-то мне подсказывает что ведущих нулей быть не должно. ибо еслиб они были то последовательность бы просто разбивалась по 2 символа.

Цитата прохожий2019, 21.09.2023 в 11:55, в сообщении № 27 ()
как-то так
ну, смотри как разогнали от первого варианта.

Автор - bmv98rus
Дата добавления - 21.09.2023 в 13:21
прохожий2019 Дата: Четверг, 21.09.2023, 13:44 | Сообщение № 32
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация: 327 ±
Замечаний: 0% ±

365 Beta Channel
знать бы что за последовательность, что означает
ну судя по ограничениям - это номера дней в месяце, где-то в первых сообщениях я предполагал, что они просто слиплись при выгрузке откуда-то, но ТС и правда потерял интерес, может быть множество вариантов разбивки его спугнуло )))
 
Ответить
Сообщение
знать бы что за последовательность, что означает
ну судя по ограничениям - это номера дней в месяце, где-то в первых сообщениях я предполагал, что они просто слиплись при выгрузке откуда-то, но ТС и правда потерял интерес, может быть множество вариантов разбивки его спугнуло )))

Автор - прохожий2019
Дата добавления - 21.09.2023 в 13:44
Светлый Дата: Четверг, 21.09.2023, 14:27 | Сообщение № 33
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
Цитата прохожий2019, 21.09.2023 в 13:44, в сообщении № 32 ()
множество вариантов разбивки его спугнуло
Тогда ещё нагоним страху. Во многих случаях решение находит:
Код
=МАКС(ТЕКСТ(ПСТР($B3;СУММ(ДЛСТР($AX3:AX3);1);{1;2})-32;"-32;-0;-32")+32)


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Цитата прохожий2019, 21.09.2023 в 13:44, в сообщении № 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
Цитата Светлый, 21.09.2023 в 14:27, в сообщении № 33 ()
Во многих случаях
это когда хватит символов.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Цитата Светлый, 21.09.2023 в 14:27, в сообщении № 33 ()
Во многих случаях
это когда хватит символов.

Автор - 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]
не очень симпатично - не причёсывал, но зато по скорости:
К сообщению приложен файл: 2082907.jpg (24.5 Kb)


Сообщение отредактировал прохожий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]

пы.сы. формула писалась для изначальной темы, в МШ не участвует, более производительное решение не выкладываю - тут приоритеты поменялись
К сообщению приложен файл: promer3_finish.xlsx (41.3 Kb)


Сообщение отредактировал прохожий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 символа. В исходном наборе ошибок нет. Проверил на крайностях (короткие, длинные, с нулями). Тоже корректно.


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Пятница, 22.09.2023, 18:28
 
Ответить
СообщениеЯ вот думаю, может на МШ эту задачку выложить? У меня есть решение в 132 символа. В исходном наборе ошибок нет. Проверил на крайностях (короткие, длинные, с нулями). Тоже корректно.

Автор - Светлый
Дата добавления - 22.09.2023 в 18:24
Serge_007 Дата: Пятница, 22.09.2023, 19:39 | Сообщение № 38
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата Светлый, 22.09.2023 в 18:24, в сообщении № 37 ()
на МШ эту задачку выложить
Выложил

Цитата Светлый, 22.09.2023 в 18:24, в сообщении № 37 ()
есть решение в 132 символа
Такого короткого нет, но будет очень интересно посмотреть)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата Светлый, 22.09.2023 в 18:24, в сообщении № 37 ()
на МШ эту задачку выложить
Выложил

Цитата Светлый, 22.09.2023 в 18:24, в сообщении № 37 ()
есть решение в 132 символа
Такого короткого нет, но будет очень интересно посмотреть)

Автор - Serge_007
Дата добавления - 22.09.2023 в 19:39
Светлый Дата: Пятница, 22.09.2023, 20:12 | Сообщение № 39
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
Выложил
Оперативненько :)
В моём решении есть функции более поздние, чем в 2003 офисе. Так что не по начальным правилам МШ.
Сейчас моё решение 130 символов.
Создавать формулу с самого начала. Не обязательно ориентироваться на уже опубликованные.


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Выложил
Оперативненько :)
В моём решении есть функции более поздние, чем в 2003 офисе. Так что не по начальным правилам МШ.
Сейчас моё решение 130 символов.
Создавать формулу с самого начала. Не обязательно ориентироваться на уже опубликованные.

Автор - Светлый
Дата добавления - 22.09.2023 в 20:12
bmv98rus Дата: Суббота, 23.09.2023, 18:16 | Сообщение № 40
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
[offtop]МШ - не корректное название ибо МШ это методология коллективного поиска решения, то что наблюдали в этой теме до определенного момента.
А как только
Цитата Светлый, 22.09.2023 в 18:24, в сообщении № 37 ()
У меня есть решение в 132 символа.
это соревнование, при этом по условно объявленными правилам.[/offtop]

Назовите ветку "У кого короче".


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Суббота, 23.09.2023, 19:52
 
Ответить
Сообщение[offtop]МШ - не корректное название ибо МШ это методология коллективного поиска решения, то что наблюдали в этой теме до определенного момента.
А как только
Цитата Светлый, 22.09.2023 в 18:24, в сообщении № 37 ()
У меня есть решение в 132 символа.
это соревнование, при этом по условно объявленными правилам.[/offtop]

Назовите ветку "У кого короче".

Автор - bmv98rus
Дата добавления - 23.09.2023 в 18:16
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!