Здравствуйте, уважаемые знатоки! Помогите, пожалуйста, срочно решить задачу, суть которой изложена на скрине. Заранее благодарю!
Как перечислить все возможные комбинации двух фрагментов текста на основании таблицы возможных совпадений?
29.03.2018 20:01:13
|
|
|
|
29.03.2018 20:11:19
Прекрасная картина, какие цвета, какие утонченные линии.
По вопросам из тем форума, личку не читаю.
|
|
|
|
29.03.2018 20:12:02
Помощью не считается выполнение за тебя твоего учебного задания |
|||
|
|
29.03.2018 20:16:26
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
|
|||
|
|
29.03.2018 20:18:15
Александр Моторин, Вы знакомы с автором темы?
|
|
|
|
29.03.2018 20:27:51
anton_vlad, может файл покажете вместо Вашей чудной картинки, которая так понравилась уважаемому БМВ)?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
|
|
|
|
29.03.2018 20:28:10
Александр Моторин,я вообще не сталкивался раньше с подобными задачами. Только одна глупая идея есть - скопировать эту таблицу и, в зависимости от того, 1 или 0 стоит в исходной, заполнять в соседней каждую ячейку.
Например, заполним первую ячейку новой таблицы так: =ЕСЛИ(B5=1;$A$5&"-"&B4;""). Далее протягиваем эту ячейку вправо. Получаем строку со значениями 154F-MCO; пропуск; пропуск; 154F-TSK; 154F-BNV. Аналогично поступаем со следующими строками. На выходе получится таблица, в которой будут представлены все возможные комбинации и пропуски. Потом каким-то образом нужно будет представить все оставшиеся в таблице полученные значения в виде одной колонки. Я понимаю, что это совсем неверный метод, но, повторюсь, не сталкивался ранее с подобными задачами и даже не представляю, как ее можно решить кратко и красиво(( Если не можете помочь с выполнением, будьте добры, хотя бы подскажите нужную формулу, я буду сам разбираться.
Изменено: |
|
|
|
29.03.2018 20:30:38
anton_vlad, для начала хотя бы прикрепите Excel-файл - у нас ведь форум по Excel, а Вы картинки показываете. Или Вы полагаете, что потенциальные помощники должны срисовать с экрана данные в свои файлы?
|
|
|
|
29.03.2018 20:31:00
Прошу прощения, вот файл
Изменено: |
|
|
|
29.03.2018 20:48:10
БМВ, благодарю Вас! А это точно самый простой способ решения?
|
|
|
|
29.03.2018 20:50:33
конечно нет, но простой скучный :-) последовательность 1,2,3, ..... разбивается с учетом кратности и получается тот же индекс ячейки, остается только понять ,1 или 0 и вывести или пропустить.
Изменено:
По вопросам из тем форума, личку не читаю.
|
|
|
|
29.03.2018 21:08:07
Хорошо, но хотя бы формулы назовите, пожалуйста, которые необходимо использовать при простом методе решения - я буду искать их сейчас и разбираться)
Я до этого вообще не работал с массивами. Учу самостоятельно, но знаком только с основами - ВПР, ЕСЛИ, основные математические плюс почти все текстовые формулы.
Изменено: |
|
|
|
29.03.2018 21:12:44
вот Однако может кто сжалится и напишет что-то более компактное и простое.
По вопросам из тем форума, личку не читаю.
|
|||
|
|
29.03.2018 22:23:00
anton_vlad, здравствуйте и вам! Если макрос подойдёт вам, то пробуйте…
Изменено:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|||||
|
|
29.03.2018 22:29:05
Jack Famous, Dim arr ???? и out.Resize(UBound(arr) + 1).Value = arr не в кассу массив и двумерный и (1 to N,1 to1)
Изменено:
По вопросам из тем форума, личку не читаю.
|
|
|
|
29.03.2018 22:43:02
БМВ, пробовал и объявлять arr()as string (в таком случае ошибка #9 Out of range) и наполнять arr(i,1) - всё одно #15 Type Mismatch
Изменено:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|||
|
|
29.03.2018 22:52:20
Jack Famous, выше смотрите, я не про стринги :-), а про размерность. она сама при таком заполнении не сменится.
и хватит будить во мне спящего прогера :-)
Изменено:
По вопросам из тем форума, личку не читаю.
|
|
|
|
29.03.2018 23:04:40
БМВ, не заметил, что вы код добавили - решил сначала с запасом объявлять, а извлекать только заполненные)))
спасибо вам за науку!
модераторам - удалите пожалуйста оффтоп, если посчитаете нужным (ответ в #17 исправил)
Изменено:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|||
|
|
29.03.2018 23:12:07
Jack Famous, ну это Dim arr(0 To 1000000, 1 To 1) As String на мой взгляд при известной размерности исходного масиива точно перебор. достаточно или объявить после Set enter Или изменить размерность. но уже перемножив количество строк на количество столбцов за минусом заголовков.
По вопросам из тем форума, личку не читаю.
|
|
|
|
29.03.2018 23:16:39
БМВ, ну я в #17 ваш вариант взял, конечно (когда есть возможность узнать размерность, такие жертвы ни к чему) только sum(rng) - это как раз область с цифрами. Ещё раз большое спасибо!
Изменено:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел)
|
|
|
|
29.03.2018 23:49:15
Вы тут немножко на своём языке общаетесь в последних сообщениях а простую формулу мне так никто и не подсказал
|
|
|
|
30.03.2018 00:09:07
Выражаясь ещё проще: какая формула поможет из того, что слева, получить то, что справа?
Изменено: |
|
|
|
30.03.2018 07:38:02
anton_vlad,
от сложной формулы
Ладно, положу файл с формулой, за труды, так сказать.
По вопросам из тем форума, личку не читаю.
|
|||||
|
|
30.03.2018 09:19:52
БМВ, Ігор Гончаренко, огромное вам спасибо, сейчас буду разбираться!
|
|
|
|
30.03.2018 09:51:24
Если уж с промежутком, то вот так
По вопросам из тем форума, личку не читаю.
|
|
|
|
30.03.2018 10:48:28
Спасибо, второй вариант выглядит более человечным. Пусть и решается задача в этом случае двумя шагами, а не одним космическим по сложности, но всё же это и не перебор вручную. Сейчас буду разбираться и адаптировать второй вариант решения под свою таблицу размерностью 18х25 Ещё раз благодарю за помощь!
Изменено: |
||||
|
|
|||