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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: китин  
Как разбить числовую последовательность по ячейкам
Leonid9156 Дата: Вторник, 19.09.2023, 22:14 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 0 ±
Замечаний: 40% ±

Здравствуйте! Имеется в столбце В3:В23 числовая последовательность, из которой надо разбить на определенное количество чисел (их 7). А ячейках C3:I23 показано как должно быть. Числа идут не по возрастанию к сожелению.
Известно максимальное и минимальное число (это от 1 до 31). Приложу файл, там как образец для понимания.
К сообщению приложен файл: 19_9_2023.xlsx (9.7 Kb)
 
Ответить
СообщениеЗдравствуйте! Имеется в столбце В3:В23 числовая последовательность, из которой надо разбить на определенное количество чисел (их 7). А ячейках C3:I23 показано как должно быть. Числа идут не по возрастанию к сожелению.
Известно максимальное и минимальное число (это от 1 до 31). Приложу файл, там как образец для понимания.

Автор - Leonid9156
Дата добавления - 19.09.2023 в 22:14
msi2102 Дата: Вторник, 19.09.2023, 22:36 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 415
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
А попробуйте сами разбить это число 11231221313
Варианты: 1 12 31 2 21 3 13 или 11 23 1 2 21 31 3 и т.д.
Должен быть какой-то принцип деления


Сообщение отредактировал msi2102 - Вторник, 19.09.2023, 22:37
 
Ответить
СообщениеА попробуйте сами разбить это число 11231221313
Варианты: 1 12 31 2 21 3 13 или 11 23 1 2 21 31 3 и т.д.
Должен быть какой-то принцип деления

Автор - msi2102
Дата добавления - 19.09.2023 в 22:36
Leonid9156 Дата: Вторник, 19.09.2023, 22:43 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 0 ±
Замечаний: 40% ±

msi2102, Из принципов только это максимальное 31 известно и количеств равно семи.


Сообщение отредактировал Leonid9156 - Вторник, 19.09.2023, 22:43
 
Ответить
Сообщениеmsi2102, Из принципов только это максимальное 31 известно и количеств равно семи.

Автор - Leonid9156
Дата добавления - 19.09.2023 в 22:43
msi2102 Дата: Вторник, 19.09.2023, 22:54 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 415
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
Я в сообщении №2 предложил Вам разбить число и показал два варианта, какой будет правильный?
 
Ответить
СообщениеЯ в сообщении №2 предложил Вам разбить число и показал два варианта, какой будет правильный?

Автор - msi2102
Дата добавления - 19.09.2023 в 22:54
прохожий2019 Дата: Вторник, 19.09.2023, 23:37 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация: 327 ±
Замечаний: 0% ±

365 Beta Channel
15.9.2023 : 20 19 29 15 1 14 13 - почему не 20 19 29 15 11 4 13?
16.9.2023 : 3 19 26 5 11 20 6 - почему не 31 9 26 5 11 20 6?
17.9.2023 : 20 7 1 17 17 11 10 - почему не 20 7 11 7 17 11 10?
18.9.2023 : 15 1 3 7 20 28 6 - почему не 15 13 7 20 2 8 6?
23.9.2023 : 5 25 13 12 15 1 16 - почему не 5 25 13 12 15 11 6?

но для альтернативных вариантов хоть логика есть, и то за 18.9.2023 - 2 8 вместо 28 - но там уже тупо цифр не хватает
а вот за 20.9.2023 - как бы вообще полёт фантазии с точки зрения вариантов

что за источник? может там табы какие затерялись? или 10-е символы...
 
Ответить
Сообщение15.9.2023 : 20 19 29 15 1 14 13 - почему не 20 19 29 15 11 4 13?
16.9.2023 : 3 19 26 5 11 20 6 - почему не 31 9 26 5 11 20 6?
17.9.2023 : 20 7 1 17 17 11 10 - почему не 20 7 11 7 17 11 10?
18.9.2023 : 15 1 3 7 20 28 6 - почему не 15 13 7 20 2 8 6?
23.9.2023 : 5 25 13 12 15 1 16 - почему не 5 25 13 12 15 11 6?

но для альтернативных вариантов хоть логика есть, и то за 18.9.2023 - 2 8 вместо 28 - но там уже тупо цифр не хватает
а вот за 20.9.2023 - как бы вообще полёт фантазии с точки зрения вариантов

что за источник? может там табы какие затерялись? или 10-е символы...

Автор - прохожий2019
Дата добавления - 19.09.2023 в 23:37
Светлый Дата: Среда, 20.09.2023, 01:12 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
Разбивка немного другая, но рабочая.
*Добавил варианты разбивки. Файл перезалил.
**Немного причесал формулу. Файл перезалил.
К сообщению приложен файл: 19_9_2023_1.xlsx (20.2 Kb)


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

Сообщение отредактировал Светлый - Среда, 20.09.2023, 06:58
 
Ответить
СообщениеРазбивка немного другая, но рабочая.
*Добавил варианты разбивки. Файл перезалил.
**Немного причесал формулу. Файл перезалил.

Автор - Светлый
Дата добавления - 20.09.2023 в 01:12
bmv98rus Дата: Среда, 20.09.2023, 10:26 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4120
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Показалось интересным, накидал массивку
Код
=MID($B3;
(COLUMN(A1)-1)*2+1-LEN(SUBSTITUTE(RIGHT(TEXT(DEC2BIN(MATCH(7;MMULT(IFERROR(--(MID($B3;{1\3\5\7\9\11\13}-LEN(SUBSTITUTE(RIGHT(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");{0\1\2\3\4\5\6});1;));MID(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");{7\6\5\4\3\2\1};1)+1)-32<0);)*(14-LEN(SUBSTITUTE(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");1;))=LEN($B3));{1;1;1;1;1;1;1});)-1);"0000000");COLUMN(A1)-1);1;));
MID(TEXT(DEC2BIN(MATCH(7;MMULT(IFERROR(--(MID($B3;{1\3\5\7\9\11\13}-LEN(SUBSTITUTE(RIGHT(TEXT(DEC2BIN(ROW($1:$256)-1);REPT(0;7));{0\1\2\3\4\5\6});1;));MID(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");{7\6\5\4\3\2\1};1)+1)-32<0);)*(14-LEN(SUBSTITUTE(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");1;))=LEN($B3));{1;1;1;1;1;1;1});)-1);"0000000");8-COLUMN(A1);1)+1)

Есть отличие от "эталона" из-за вариантов возможных.
К сообщению приложен файл: example2873.xlsx (17.9 Kb)


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

Сообщение отредактировал bmv98rus - Среда, 20.09.2023, 10:29
 
Ответить
СообщениеПоказалось интересным, накидал массивку
Код
=MID($B3;
(COLUMN(A1)-1)*2+1-LEN(SUBSTITUTE(RIGHT(TEXT(DEC2BIN(MATCH(7;MMULT(IFERROR(--(MID($B3;{1\3\5\7\9\11\13}-LEN(SUBSTITUTE(RIGHT(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");{0\1\2\3\4\5\6});1;));MID(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");{7\6\5\4\3\2\1};1)+1)-32<0);)*(14-LEN(SUBSTITUTE(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");1;))=LEN($B3));{1;1;1;1;1;1;1});)-1);"0000000");COLUMN(A1)-1);1;));
MID(TEXT(DEC2BIN(MATCH(7;MMULT(IFERROR(--(MID($B3;{1\3\5\7\9\11\13}-LEN(SUBSTITUTE(RIGHT(TEXT(DEC2BIN(ROW($1:$256)-1);REPT(0;7));{0\1\2\3\4\5\6});1;));MID(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");{7\6\5\4\3\2\1};1)+1)-32<0);)*(14-LEN(SUBSTITUTE(TEXT(DEC2BIN(ROW($1:$256)-1);"0000000");1;))=LEN($B3));{1;1;1;1;1;1;1});)-1);"0000000");8-COLUMN(A1);1)+1)

Есть отличие от "эталона" из-за вариантов возможных.

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

365 Beta Channel
оптимизацией не занимался
[vba]
Код
=LET(x;ТЕКСТРАЗД(ОБЪЕДИНИТЬ(";";;MAP(ТЕКСТРАЗД(СЦЕП(MAP(ПСТР(B3;ПОСЛЕД(ДЛСТР(B3)-1);2);LAMBDA(x;ЛЕВБ(x)&ЕСЛИ(--x>31;";";"")));ПРАВБ(B3));";");LAMBDA(x;ЕСЛИ(ДЛСТР(x)>2;ОБЪЕДИНИТЬ(";";;ПСТР(x;ПОСЛЕД(ОКРВВЕРХ(ДЛСТР(x)/2;1);;1;2);2));x))));";");
ЕСЛИ(СЧЁТЗ(x)=7;x;LET(a;МАКС(--ЕСЛИ(--x>=10;x;0))&"";b;ПОИСКПОЗ(a;x;0);ПЕРЕКЛЮЧ(b;1;ГСТОЛБИК(ЛЕВБ(a);ПРАВБ(a);СБРОСИТЬ(x;;b));6;ГСТОЛБИК(ВЗЯТЬ(x;;b-1);ЛЕВБ(a);ПРАВБ(a));ГСТОЛБИК(ВЗЯТЬ(x;;b-1);ЛЕВБ(a);ПРАВБ(a);СБРОСИТЬ(x;;b))))))
[/vba]
К сообщению приложен файл: 8297770.xlsx (28.6 Kb)
 
Ответить
Сообщениеоптимизацией не занимался
[vba]
Код
=LET(x;ТЕКСТРАЗД(ОБЪЕДИНИТЬ(";";;MAP(ТЕКСТРАЗД(СЦЕП(MAP(ПСТР(B3;ПОСЛЕД(ДЛСТР(B3)-1);2);LAMBDA(x;ЛЕВБ(x)&ЕСЛИ(--x>31;";";"")));ПРАВБ(B3));";");LAMBDA(x;ЕСЛИ(ДЛСТР(x)>2;ОБЪЕДИНИТЬ(";";;ПСТР(x;ПОСЛЕД(ОКРВВЕРХ(ДЛСТР(x)/2;1);;1;2);2));x))));";");
ЕСЛИ(СЧЁТЗ(x)=7;x;LET(a;МАКС(--ЕСЛИ(--x>=10;x;0))&"";b;ПОИСКПОЗ(a;x;0);ПЕРЕКЛЮЧ(b;1;ГСТОЛБИК(ЛЕВБ(a);ПРАВБ(a);СБРОСИТЬ(x;;b));6;ГСТОЛБИК(ВЗЯТЬ(x;;b-1);ЛЕВБ(a);ПРАВБ(a));ГСТОЛБИК(ВЗЯТЬ(x;;b-1);ЛЕВБ(a);ПРАВБ(a);СБРОСИТЬ(x;;b))))))
[/vba]

Автор - прохожий2019
Дата добавления - 20.09.2023 в 11:02
Светлый Дата: Среда, 20.09.2023, 12:25 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
bmv98rus, взял на себя смелость по-быстрому почистить от лишнего Вашу формулу:
Код
=ПСТР($B3;
(СТОЛБЕЦ(A1)-1)*2+1-ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(ПОИСКПОЗ(7;МУМНОЖ(ЕСЛИОШИБКА(--(ПСТР($B3;{1;3;5;7;9;11;13}-ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{0;1;2;3;4;5;6});1;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1)-32<0);)*(14-ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);1;))=ДЛСТР($B3));{1:1:1:1:1:1:1});)-1;7);СТОЛБЕЦ(A1)-1);1;));
ПСТР(ДЕС.В.ДВ(ПОИСКПОЗ(7;МУМНОЖ(ЕСЛИОШИБКА(--(ПСТР($B3;{1;3;5;7;9;11;13}-ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ТЕКСТ(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);ПОВТОР(0;7));{0;1;2;3;4;5;6});1;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1)-32<0);)*(14-ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);1;))=ДЛСТР($B3));{1:1:1:1:1:1:1});)-1;7);8-СТОЛБЕЦ(A1);1)+1)
Пока ещё не вникал в суть.


Программировать проще, чем писать стихи.
 
Ответить
Сообщениеbmv98rus, взял на себя смелость по-быстрому почистить от лишнего Вашу формулу:
Код
=ПСТР($B3;
(СТОЛБЕЦ(A1)-1)*2+1-ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(ПОИСКПОЗ(7;МУМНОЖ(ЕСЛИОШИБКА(--(ПСТР($B3;{1;3;5;7;9;11;13}-ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{0;1;2;3;4;5;6});1;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1)-32<0);)*(14-ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);1;))=ДЛСТР($B3));{1:1:1:1:1:1:1});)-1;7);СТОЛБЕЦ(A1)-1);1;));
ПСТР(ДЕС.В.ДВ(ПОИСКПОЗ(7;МУМНОЖ(ЕСЛИОШИБКА(--(ПСТР($B3;{1;3;5;7;9;11;13}-ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ТЕКСТ(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);ПОВТОР(0;7));{0;1;2;3;4;5;6});1;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1)-32<0);)*(14-ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);1;))=ДЛСТР($B3));{1:1:1:1:1:1:1});)-1;7);8-СТОЛБЕЦ(A1);1)+1)
Пока ещё не вникал в суть.

Автор - Светлый
Дата добавления - 20.09.2023 в 12:25
bmv98rus Дата: Среда, 20.09.2023, 12:45 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4120
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Светлый, все правильно я потом решил почистить.

Цитата прохожий2019, 20.09.2023 в 11:02, в сообщении № 8 ()
оптимизацией не занимался

за тебя Microsoft 'это делал :-) а мне пришлось
Код
=MID($B3;
COLUMN(A1)+LEN(SUBSTITUTE(RIGHT(DEC2BIN(MATCH(7;MMULT(IFERROR(--(MID($B3;{1\2\3\4\5\6\7}+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$256)-1);{0\1\2\3\4\5\6});0;));MID(DEC2BIN(ROW($1:$256)-1;7);{7\6\5\4\3\2\1};1)+1)-32<0);)*(7+LEN(SUBSTITUTE(DEC2BIN(ROW($1:$256)-1);0;))=LEN($B3));{1;1;1;1;1;1;1});)-1);COLUMN(A1)-1);0;));
MID(DEC2BIN(MATCH(7;MMULT(IFERROR(--(MID($B3;{1\2\3\4\5\6\7}+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$256)-1);{0\1\2\3\4\5\6});0;));MID(DEC2BIN(ROW($1:$256)-1;7);{7\6\5\4\3\2\1};1)+1)-32<0);)*(7+LEN(SUBSTITUTE(DEC2BIN(ROW($1:$256)-1);0;))=LEN($B3));{1;1;1;1;1;1;1});)-1;7);8-COLUMN(A1);1)+1)
К сообщению приложен файл: example2873_1.xlsx (17.4 Kb)


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

Сообщение отредактировал bmv98rus - Среда, 20.09.2023, 12:54
 
Ответить
СообщениеСветлый, все правильно я потом решил почистить.

Цитата прохожий2019, 20.09.2023 в 11:02, в сообщении № 8 ()
оптимизацией не занимался

за тебя Microsoft 'это делал :-) а мне пришлось
Код
=MID($B3;
COLUMN(A1)+LEN(SUBSTITUTE(RIGHT(DEC2BIN(MATCH(7;MMULT(IFERROR(--(MID($B3;{1\2\3\4\5\6\7}+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$256)-1);{0\1\2\3\4\5\6});0;));MID(DEC2BIN(ROW($1:$256)-1;7);{7\6\5\4\3\2\1};1)+1)-32<0);)*(7+LEN(SUBSTITUTE(DEC2BIN(ROW($1:$256)-1);0;))=LEN($B3));{1;1;1;1;1;1;1});)-1);COLUMN(A1)-1);0;));
MID(DEC2BIN(MATCH(7;MMULT(IFERROR(--(MID($B3;{1\2\3\4\5\6\7}+LEN(SUBSTITUTE(RIGHT(DEC2BIN(ROW($1:$256)-1);{0\1\2\3\4\5\6});0;));MID(DEC2BIN(ROW($1:$256)-1;7);{7\6\5\4\3\2\1};1)+1)-32<0);)*(7+LEN(SUBSTITUTE(DEC2BIN(ROW($1:$256)-1);0;))=LEN($B3));{1;1;1;1;1;1;1});)-1;7);8-COLUMN(A1);1)+1)

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

365 Beta Channel
за тебя Microsoft 'это делал
дать возможность написать короче и оптимизировать работу - немножко разные вещи, 365-ые не такие быстрые, поверь
 
Ответить
Сообщение
за тебя Microsoft 'это делал
дать возможность написать короче и оптимизировать работу - немножко разные вещи, 365-ые не такие быстрые, поверь

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

Excel 2013/2016
прохожий2019, сравни по скорости с моим вариантом. И нет желания на планету вернуться?


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениепрохожий2019, сравни по скорости с моим вариантом. И нет желания на планету вернуться?

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

365 Beta Channel
сравни по скорости
гм... ну да, множить матрицы затратно... )))
К сообщению приложен файл: 2231003.jpg (25.7 Kb)


Сообщение отредактировал прохожий2019 - Среда, 20.09.2023, 13:44
 
Ответить
Сообщение
сравни по скорости
гм... ну да, множить матрицы затратно... )))

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

Excel 2013, 2016
Пересмотрел методику. Разбивка в голубых ячейках. Номер допустимого варианта в столбце J. Формула массива:
Код
=ИНДЕКС(ПСТР($B3;ДЛСТР(ПОДСТАВИТЬ(ПРАВБ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);{0;1;2;3;4;5;6});0;))+СТОЛБЕЦ($A:$G);ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1);НАИМЕНЬШИЙ(ЕСЛИ((МУМНОЖ(-(31-(0&ПСТР($B3;ДЛСТР(ПОДСТАВИТЬ(ПРАВБ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);{0;1;2;3;4;5;6});0;))+СТОЛБЕЦ($A:$G);ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1))<0);СТРОКА(1:7))=0)*(ДЛСТР($B3)-ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=7);СТРОКА($1:$128));$J3+1);СТОЛБЕЦ(A3))
К сообщению приложен файл: 19_9_2023_2.xlsx (26.4 Kb)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеПересмотрел методику. Разбивка в голубых ячейках. Номер допустимого варианта в столбце J. Формула массива:
Код
=ИНДЕКС(ПСТР($B3;ДЛСТР(ПОДСТАВИТЬ(ПРАВБ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);{0;1;2;3;4;5;6});0;))+СТОЛБЕЦ($A:$G);ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1);НАИМЕНЬШИЙ(ЕСЛИ((МУМНОЖ(-(31-(0&ПСТР($B3;ДЛСТР(ПОДСТАВИТЬ(ПРАВБ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);{0;1;2;3;4;5;6});0;))+СТОЛБЕЦ($A:$G);ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1))<0);СТРОКА(1:7))=0)*(ДЛСТР($B3)-ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=7);СТРОКА($1:$128));$J3+1);СТОЛБЕЦ(A3))

Автор - Светлый
Дата добавления - 20.09.2023 в 20:47
bmv98rus Дата: Среда, 20.09.2023, 22:38 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4120
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Светлый, обоснуйте почему 128 ? Результат верен, и даже в моей формуле если изменить, но почему половина вариантов?


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеСветлый, обоснуйте почему 128 ? Результат верен, и даже в моей формуле если изменить, но почему половина вариантов?

Автор - bmv98rus
Дата добавления - 20.09.2023 в 22:38
Светлый Дата: Среда, 20.09.2023, 22:44 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
обоснуйте почему 128 ?
Всего семь чисел, для каждого из них 2 состояния, 0-1 символ, 1-2 символа. 2^7=128 вариантов. 0=0000000, 127=1111111 и все промежуточные.


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

Сообщение отредактировал Светлый - Среда, 20.09.2023, 22:45
 
Ответить
Сообщение
обоснуйте почему 128 ?
Всего семь чисел, для каждого из них 2 состояния, 0-1 символ, 1-2 символа. 2^7=128 вариантов. 0=0000000, 127=1111111 и все промежуточные.

Автор - Светлый
Дата добавления - 20.09.2023 в 22:44
bmv98rus Дата: Среда, 20.09.2023, 22:47 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4120
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
ВОТ ЭТО Я ТУПАНУЛ. Почему 2^8 взял - даже не знаю.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеВОТ ЭТО Я ТУПАНУЛ. Почему 2^8 взял - даже не знаю.

Автор - bmv98rus
Дата добавления - 20.09.2023 в 22:47
прохожий2019 Дата: Среда, 20.09.2023, 23:08 | Сообщение № 18
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация: 327 ±
Замечаний: 0% ±

365 Beta Channel
кстати о полном переборе...
[vba]
Код
=LET(x;ТЕКСТ(B28;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ДЕС.В.ДВ(ПОСЛЕД(128;;0);7);"0";"0\;");"1";"00\;"));y;ЛЕВБ(x;ДЛСТР(x)-1);z;ФИЛЬТР(y;MAP(y;LAMBDA(i;МАКС(ЕСЛИОШИБКА(--ТЕКСТРАЗД(i;";");0))<=31)));ИНДЕКС(z;1))
[/vba]
 
Ответить
Сообщениекстати о полном переборе...
[vba]
Код
=LET(x;ТЕКСТ(B28;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ДЕС.В.ДВ(ПОСЛЕД(128;;0);7);"0";"0\;");"1";"00\;"));y;ЛЕВБ(x;ДЛСТР(x)-1);z;ФИЛЬТР(y;MAP(y;LAMBDA(i;МАКС(ЕСЛИОШИБКА(--ТЕКСТРАЗД(i;";");0))<=31)));ИНДЕКС(z;1))
[/vba]

Автор - прохожий2019
Дата добавления - 20.09.2023 в 23:08
bmv98rus Дата: Среда, 20.09.2023, 23:27 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4120
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
А мы по старинке вот так
Код
=LOOKUP(2;1/(7=
MMULT(IFERROR(--(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)))
на треть быстрее чем у светлого, но у него подсмотрел что генерировать варианты можно сразу ка не вычислять дважды подходящий.
К сообщению приложен файл: example2873_2.xlsx (31.0 Kb)


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

Сообщение отредактировал bmv98rus - Среда, 20.09.2023, 23:28
 
Ответить
СообщениеА мы по старинке вот так
Код
=LOOKUP(2;1/(7=
MMULT(IFERROR(--(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.09.2023 в 23:27
Светлый Дата: Четверг, 21.09.2023, 08:21 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
bmv98rus, можно избавиться от ЕСЛИОШИБКА:
Код
=ПРОСМОТР(2;1/(7=
МУМНОЖ(--((0&ПСТР($B3;{1;2;3;4;5;6;7}+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);{0;1;2;3;4;5;6});0;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1))-32<0)*(7+ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=ДЛСТР($B3));{1:1:1:1:1:1:1}));
ПСТР($B3;СТОЛБЕЦ(A1)+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);СТОЛБЕЦ(A1)-1);0;));1+ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-СТОЛБЕЦ(A1);1)))


Программировать проще, чем писать стихи.
 
Ответить
Сообщениеbmv98rus, можно избавиться от ЕСЛИОШИБКА:
Код
=ПРОСМОТР(2;1/(7=
МУМНОЖ(--((0&ПСТР($B3;{1;2;3;4;5;6;7}+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);{0;1;2;3;4;5;6});0;));ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);{7;6;5;4;3;2;1};1)+1))-32<0)*(7+ДЛСТР(ПОДСТАВИТЬ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);0;))=ДЛСТР($B3));{1:1:1:1:1:1:1}));
ПСТР($B3;СТОЛБЕЦ(A1)+ДЛСТР(ПОДСТАВИТЬ(ПРАВСИМВ(ДЕС.В.ДВ(СТРОКА($1:$128)-1);СТОЛБЕЦ(A1)-1);0;));1+ПСТР(ДЕС.В.ДВ(СТРОКА($1:$128)-1;7);8-СТОЛБЕЦ(A1);1)))

Автор - Светлый
Дата добавления - 21.09.2023 в 08:21
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

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