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

Вход

Регистрация

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

 

= Мир MS Excel/Нахождение вхождения массива в другой и запись разницы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Нахождение вхождения массива в другой и запись разницы (Формулы/Formulas)
Нахождение вхождения массива в другой и запись разницы
Bosch Дата: Понедельник, 02.03.2015, 20:34 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуте, уважаемые участники форума!

Предо мной стоят две задачи, первая:

Представив значения исходной строки в диапазоне @[col]:[col5], как массив, сравнить их со всеми другими строками в этом же диапазоне как массивами, игнорируя последовательность значений и выписать в соответствующее исходной строке поле [@diff] различие с каждой из строк, в которую значения исходной входят полностью, вне зависимости от их (значений) последовательности. Если различий несколько или с несколькими строками, то перечислить их в ячейке [@diff] через пробел.

А вторая, менее приоритетная:

Если набор значений каких либо строк совпадёт, подсветить ячейки [@cols] в обоих строках красным.

Ячейка [@cols] в примере просто сцепляет через пробел диапазон @[col]:[col5]

Буду рад любым комментариям, спасибо!
К сообщению приложен файл: example.xls (26.5 Kb)
 
Ответить
СообщениеЗдравствуте, уважаемые участники форума!

Предо мной стоят две задачи, первая:

Представив значения исходной строки в диапазоне @[col]:[col5], как массив, сравнить их со всеми другими строками в этом же диапазоне как массивами, игнорируя последовательность значений и выписать в соответствующее исходной строке поле [@diff] различие с каждой из строк, в которую значения исходной входят полностью, вне зависимости от их (значений) последовательности. Если различий несколько или с несколькими строками, то перечислить их в ячейке [@diff] через пробел.

А вторая, менее приоритетная:

Если набор значений каких либо строк совпадёт, подсветить ячейки [@cols] в обоих строках красным.

Ячейка [@cols] в примере просто сцепляет через пробел диапазон @[col]:[col5]

Буду рад любым комментариям, спасибо!

Автор - Bosch
Дата добавления - 02.03.2015 в 20:34
Hugo Дата: Понедельник, 02.03.2015, 21:25 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
Как будет выглядеть результат, если в диапазон добавить строку 1 2 3 4 5 на любом другом языке?
Сразу говорю - пока делать не берусь. Хотя обработать именно пример - не сложно. И проще думаю сравнивать элементы массивов с строкой, убирая совпадения заменой, что осталось - пишем в diff.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеКак будет выглядеть результат, если в диапазон добавить строку 1 2 3 4 5 на любом другом языке?
Сразу говорю - пока делать не берусь. Хотя обработать именно пример - не сложно. И проще думаю сравнивать элементы массивов с строкой, убирая совпадения заменой, что осталось - пишем в diff.

Автор - Hugo
Дата добавления - 02.03.2015 в 21:25
buchlotnik Дата: Понедельник, 02.03.2015, 21:27 | Сообщение № 3
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
если "в лоб"
К сообщению приложен файл: 8424765.xls (29.0 Kb)
 
Ответить
Сообщениеесли "в лоб"

Автор - buchlotnik
Дата добавления - 02.03.2015 в 21:27
Bosch Дата: Понедельник, 02.03.2015, 21:46 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Hugo, если добавить строку на любом другом, то принцип формирования результата останется прежжним. Или вам конкретный пример требуется?
 
Ответить
СообщениеHugo, если добавить строку на любом другом, то принцип формирования результата останется прежжним. Или вам конкретный пример требуется?

Автор - Bosch
Дата добавления - 02.03.2015 в 21:46
Bosch Дата: Понедельник, 02.03.2015, 21:58 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
buchlotnik, посмотрел ваш пример, осмыслил принципы работы, спасибо, но к сожалению он не решит моей задачи, т.к. работает только с одной строкой, а как масштабировать данный принцип на все я с со своим уровне знания Excel затрудняюсь представить. А по раскраске дублей ваш пример можно считать решением, он ещё мне даже и в другом деле помог: как сортировать значения при конкатенации, осталось только разобраться как это сделать на динамическом кол-ве значений. Спасибо!
 
Ответить
Сообщениеbuchlotnik, посмотрел ваш пример, осмыслил принципы работы, спасибо, но к сожалению он не решит моей задачи, т.к. работает только с одной строкой, а как масштабировать данный принцип на все я с со своим уровне знания Excel затрудняюсь представить. А по раскраске дублей ваш пример можно считать решением, он ещё мне даже и в другом деле помог: как сортировать значения при конкатенации, осталось только разобраться как это сделать на динамическом кол-ве значений. Спасибо!

Автор - Bosch
Дата добавления - 02.03.2015 в 21:58
buchlotnik Дата: Понедельник, 02.03.2015, 22:07 | Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Bosch, тогда дайте примерчик понагляднее - может и динамический вариант получится. Сколько примерно уникальных значений будет в вашем динамическом диапазоне? сколько столбцов в реале?
 
Ответить
СообщениеBosch, тогда дайте примерчик понагляднее - может и динамический вариант получится. Сколько примерно уникальных значений будет в вашем динамическом диапазоне? сколько столбцов в реале?

Автор - buchlotnik
Дата добавления - 02.03.2015 в 22:07
Bosch Дата: Понедельник, 02.03.2015, 22:36 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
buchlotnik, столбцов в реале семь, строк сколько угодно, уникальных значений соответственно "чуть" меньше чем сколько угодно. Содержимое ячеек строковые данные. Вот, пожалуйста, более расширенный пример со случайными словами:
К сообщению приложен файл: example2.xls (27.5 Kb)
 
Ответить
Сообщениеbuchlotnik, столбцов в реале семь, строк сколько угодно, уникальных значений соответственно "чуть" меньше чем сколько угодно. Содержимое ячеек строковые данные. Вот, пожалуйста, более расширенный пример со случайными словами:

Автор - Bosch
Дата добавления - 02.03.2015 в 22:36
Manyasha Дата: Понедельник, 02.03.2015, 22:48 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Bosch, здравствуйте.
Вдруг макросом приглянется). Строчек может быть сколько угодно, как и значений в А:G, а вот если количество столбцов изменится, в коде придется поправить пару циферек.
Формулу для УФ взяла у buchlotnik, только переписала для столбца diff:
Код
=СЧЁТЕСЛИ($I:$I;I1)>1
К сообщению приложен файл: example2_1.xls (37.5 Kb)


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Вторник, 03.03.2015, 07:52
 
Ответить
СообщениеBosch, здравствуйте.
Вдруг макросом приглянется). Строчек может быть сколько угодно, как и значений в А:G, а вот если количество столбцов изменится, в коде придется поправить пару циферек.
Формулу для УФ взяла у buchlotnik, только переписала для столбца diff:
Код
=СЧЁТЕСЛИ($I:$I;I1)>1

Автор - Manyasha
Дата добавления - 02.03.2015 в 22:48
Hugo Дата: Вторник, 03.03.2015, 00:57 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
Manyasha, я бы UniqueValues сделал публичным объектом (можно для модуля) - чтоб не заполнять его/её на каждой строке. Будет значительно быстрее - хотя если строк всего десяток, то можно не ускорять.
Но ведь тот алгоритм не решает задачу. Я не зря про 12345 спрашивал - пример с словами проясняет задачу.


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Вторник, 03.03.2015, 01:05
 
Ответить
СообщениеManyasha, я бы UniqueValues сделал публичным объектом (можно для модуля) - чтоб не заполнять его/её на каждой строке. Будет значительно быстрее - хотя если строк всего десяток, то можно не ускорять.
Но ведь тот алгоритм не решает задачу. Я не зря про 12345 спрашивал - пример с словами проясняет задачу.

Автор - Hugo
Дата добавления - 03.03.2015 в 00:57
Manyasha Дата: Вторник, 03.03.2015, 07:52 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Hugo, UniqueValue я согласна с Вами, так и делала вчера, но мой код выдавал ошибку, решила выложить хоть как-нибудь) Сейчас поправила:

Файл перезалила в предыдущее свое сообщение.

А на счет я не очень поняла, в чем некоррекность работы моего кода? Расскажите, пожалуйста.)


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Вторник, 03.03.2015, 07:58
 
Ответить
СообщениеHugo, UniqueValue я согласна с Вами, так и делала вчера, но мой код выдавал ошибку, решила выложить хоть как-нибудь) Сейчас поправила:

Файл перезалила в предыдущее свое сообщение.

А на счет я не очень поняла, в чем некоррекность работы моего кода? Расскажите, пожалуйста.)

Автор - Manyasha
Дата добавления - 03.03.2015 в 07:52
Hugo Дата: Вторник, 03.03.2015, 10:00 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
Ну там в примере со словами ведь другой результат показан.
И вопрос звучал так: "различие с каждой из строк, в которую значения исходной входят полностью". А с теми, куда полностью не входит - сравнивать значит не нужно. Т.е. мои одиночные 12345 ничего бы в результате не изменили.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНу там в примере со словами ведь другой результат показан.
И вопрос звучал так: "различие с каждой из строк, в которую значения исходной входят полностью". А с теми, куда полностью не входит - сравнивать значит не нужно. Т.е. мои одиночные 12345 ничего бы в результате не изменили.

Автор - Hugo
Дата добавления - 03.03.2015 в 10:00
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Нахождение вхождения массива в другой и запись разницы (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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