Страницы: 1 2 След.
RSS
Как перечислить все возможные комбинации двух фрагментов текста на основании таблицы возможных совпадений?
 
Здравствуйте, уважаемые знатоки! Помогите, пожалуйста, срочно решить задачу, суть которой изложена на скрине. Заранее благодарю!
 
Прекрасная картина, какие цвета, какие утонченные линии.
По вопросам из тем форума, личку не читаю.
 
Код
Помогите
покажи что сделал! что не получается?
Помощью не считается выполнение за тебя твоего учебного задания
 
Цитата
БМВ написал:
какие утонченные линии.
БМВ, обычные границы ячеек))) Вот если бы хотя бы пунктиром...
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Александр Моторин, Вы знакомы с автором темы?
 
anton_vlad, может файл покажете вместо Вашей чудной картинки, которая так понравилась уважаемому БМВ)?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Александр Моторин,я вообще не сталкивался раньше с подобными задачами. Только одна глупая идея есть - скопировать эту таблицу и, в зависимости от того, 1 или 0 стоит в исходной, заполнять в соседней каждую ячейку.
Например, заполним первую ячейку новой таблицы так: =ЕСЛИ(B5=1;$A$5&"-"&B4;"").
Далее протягиваем эту ячейку вправо.
Получаем строку со значениями 154F-MCO; пропуск; пропуск; 154F-TSK; 154F-BNV.
Аналогично поступаем со следующими строками.
На выходе получится таблица, в которой будут представлены все возможные комбинации и пропуски.
Потом каким-то образом нужно будет представить все оставшиеся в таблице полученные значения в виде одной колонки.

Я понимаю, что это совсем неверный метод, но, повторюсь, не сталкивался ранее с подобными задачами и даже не представляю, как ее можно решить кратко и красиво(( Если не можете помочь с выполнением, будьте добры, хотя бы подскажите нужную формулу, я буду сам разбираться.
Изменено: anton_vlad - 29.03.2018 20:28:49
 
anton_vlad, для начала хотя бы прикрепите Excel-файл - у нас ведь форум по Excel, а Вы картинки показываете. Или Вы полагаете, что потенциальные помощники должны срисовать с экрана данные в свои файлы?
 
Прошу прощения, вот файл
Изменено: anton_vlad - 29.03.2018 20:33:44
 
=IF(SUM($B$5:$F$8)>=ROWS($J$8:$J8);INDEX($A:$A;INT(SMALL(IF($B$5:$F$8=1;ROW($B$5:$F$8)+COLUMN($B$5:$F$8)*10^-3);ROWS($J$8:$J8))))&"-"&
INDEX($4:$4;MOD(SMALL(IF($B$5:$F$8=1;ROW($B$5:$F$8)+COLUMN($B$5:$F$8)*10^-3);ROWS($J$8:$J8));1)*10^3);"")
По вопросам из тем форума, личку не читаю.
 
БМВ, благодарю Вас! А это точно самый простой способ решения?
 
конечно нет, но простой скучный :-) последовательность 1,2,3, ..... разбивается с учетом кратности и получается тот же индекс ячейки, остается только понять ,1 или 0 и вывести или пропустить.
Изменено: БМВ - 29.03.2018 20:53:08
По вопросам из тем форума, личку не читаю.
 
А можно поподробней о простом? Какие формулы нужно использовать, что делать с индексами. Просто, боюсь, что если я покажу Ваше решение, то ничем хорошим для меня это не закончится)
 
1. забыл сказать что формула требует массивного ввода
2. А вы попробуйте разобраться, там ничего сложного нет. Списывая бездумно- это чистописание, а вот если с пониманием - это обучение.
3. Не даю локализованный вариант, в том числе и для того, чтоб что-то в задании сделали сами.
По вопросам из тем форума, личку не читаю.
 
Хорошо, но хотя бы формулы назовите, пожалуйста, которые необходимо использовать при простом методе решения - я буду искать их сейчас и разбираться)
Я до этого вообще не работал с массивами. Учу самостоятельно, но знаком только с основами - ВПР, ЕСЛИ, основные математические плюс почти все текстовые формулы.
Изменено: anton_vlad - 29.03.2018 21:08:34
 
Цитата
anton_vlad написал:
формулы назовите
Формулу можно написать, а функцию можно назвать :-)
вот тут справочник, который поможет перевести.

Однако может кто сжалится и напишет что-то более компактное и простое.
По вопросам из тем форума, личку не читаю.
 
anton_vlad, здравствуйте и вам! Если макрос подойдёт вам, то пробуйте…
Код макроса
Изменено: Jack Famous - 29.03.2018 23:18:30
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, Dim arr ????  и  out.Resize(UBound(arr) + 1).Value = arr не в кассу массив и двумерный и (1 to N,1 to1)
Изменено: БМВ - 29.03.2018 23:23:58
По вопросам из тем форума, личку не читаю.
 
БМВ, пробовал и объявлять arr()as string (в таком случае ошибка #9 Out of range) и наполнять arr(i,1) - всё одно #15 Type Mismatch
Цитата
БМВ написал:
out.Resize(UBound(arr) + 1).Value = arr
ошибка до этого возникает - с выводом я бы разобрался (наверное) )))
Изменено: Jack Famous - 29.03.2018 22:47:51
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, выше смотрите, я не про стринги :-), а про размерность. она сама при таком заполнении не сменится.

и хватит будить во мне спящего прогера :-)
Изменено: БМВ - 29.03.2018 22:58:17
По вопросам из тем форума, личку не читаю.
 
БМВ, не заметил, что вы код добавили - решил сначала с запасом объявлять, а извлекать только заполненные)))
спасибо вам за науку!  :idea:
Цитата
БМВ написал:
хватит будить во мне спящего прогера
я не специально  :D
модераторам - удалите пожалуйста оффтоп, если посчитаете нужным (ответ в #17 исправил)
Изменено: Jack Famous - 29.03.2018 23:25:55
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, ну это Dim arr(0 To 1000000, 1 To 1) As String на мой взгляд при известной размерности исходного масиива точно перебор. достаточно или объявить после Set enter Или изменить размерность. но уже перемножив количество строк на количество столбцов за минусом заголовков.
По вопросам из тем форума, личку не читаю.
 
БМВ, ну я в #17 ваш вариант взял, конечно (когда есть возможность узнать размерность, такие жертвы ни к чему)  :)  только sum(rng) - это как раз область с цифрами. Ещё раз большое спасибо!
Изменено: Jack Famous - 29.03.2018 23:17:05
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Вы тут немножко на своём языке общаетесь в последних сообщениях :D  а простую формулу мне так никто и не подсказал  :cry:  :cry:  
 
Выражаясь ещё проще: какая формула поможет из того, что слева, получить то, что справа?
Изменено: anton_vlad - 30.03.2018 00:14:32
 
=ЕСЛИ(СТРОКА()>СЧЁТЗ($B$2:$F$5);"";ИНДЕКС($A$1:$F$5;ЦЕЛОЕ(НАИМЕНЬШИЙ(ЕСЛИ(НЕ(ЕПУСТО($B$2:$F$5));СТРОКА($B$2:$F$5)+СТОЛБЕЦ($B$2:$F$5)/10);СТРОКА()));ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ(НЕ(ЕПУСТО($B$2:$F$5));СТРОКА($B$2:$F$5)+СТОЛБЕЦ($B$2:$F$5)/10);СТРОКА());1)*10))
это формула массива
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
anton_vlad,
от сложной формулы
Цитата
БМВ написал:
=IF(SUM($B$5:$F$8)>=ROWS($J$8:$J8);INDEX($A:$A;INT(SMALL(IF($B$5:$F$8=1;ROW($B$5:$F$8)+COLUMN($B$5:$F$8)*10^-3);ROWS($J$8:$J8))))&"-"&INDEX($4:$4;MOD(SMALL(IF($B$5:$F$8=1;ROW($B$5:$F$8)+COLUMN($B$5:$F$8)*10^-3);ROWS($J$8:$J8));1)*10^3);"")
через дополнительные промежуточные вычисления и области, перешли к простой
Цитата
Ігор Гончаренко написал:
=ЕСЛИ(СТРОКА()>СЧЁТЗ($B$2:$F$5);"";ИНДЕКС($A$1:$F$5;ЦЕЛОЕ(НАИМЕНЬШИЙ(ЕСЛИ(НЕ(ЕПУСТО($B$2:$F$5));СТРОКА($B$2:$F$5)+СТОЛБЕЦ($B$2:$F$5)/10);СТРОКА()));ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ(НЕ(ЕПУСТО($B$2:$F$5));СТРОКА($B$2:$F$5)+СТОЛБЕЦ($B$2:$F$5)/10);СТРОКА());1)*10))
:)
Ладно, положу файл с формулой, за труды, так сказать.
По вопросам из тем форума, личку не читаю.
 
БМВ, Ігор Гончаренко, огромное вам спасибо, сейчас буду разбираться! :D  
 
Если уж с промежутком, то вот так
По вопросам из тем форума, личку не читаю.
 
Спасибо, второй вариант выглядит более человечным. Пусть и решается задача в этом случае двумя шагами, а не одним космическим по сложности, но всё же это и не перебор вручную. Сейчас буду разбираться и адаптировать второй вариант решения под свою таблицу размерностью 18х25 :)   Ещё раз благодарю за помощь!
Изменено: anton_vlad - 30.03.2018 10:49:48
Страницы: 1 2 След.
Наверх