Здравствуйте, Не сталкивались ли вы с такой простой задачей как опрос в excel? Например Петя проголосовал за Васю и Вася проголосовал за Петю, как найти среди их прочих ответов именно такое соответствие тоесть показать только тех за кого проголосовал Петя, если и они в свою очередь проголосовали за Петю.
Такой вот список:
вася
петя
вася
степа
вася
даша
петя
вася
петя
Степа
Из этого списка должны остаться только вася - петя Пробовал Многоразовый ВПР, тоесть находим все вхождения за которые проголосовал вася, потом перебираем каждое найденное значение тем же множественным ВПР и потом сравниваем есть ли совпадения - но как то сложновато получается... Еще не плохой вариант Парная подсветка дубликатов, но мне надо чтоб подсвечивал не все одинаковые, а именно те в которых вася выбрал петю и петя выбрал васю.
Sub Мяу()
Dim oDic As Object, i&
Dim arr, oDicItems
Set oDic = CreateObject("Scripting.Dictionary")
arr = [A1].CurrentRegion.Value
For i = 2 To UBound(arr)
oDic.Item(arr(i, 1) & "|" & arr(i, 2)) = arr(i, 2) & "|" & arr(i, 1)
Next
oDicItems = oDic.Items
For i = 0 To UBound(oDicItems)
If oDic.Exists(oDicItems(i)) Then
Cells(i + 2, 1).Resize(, 2).Interior.Color = vbRed
End If
Next
End Sub
Да Вы правы. Хочу поблагодарить еще раз RAN, за макрос подсветки "взаимностей" и Pelena, за чудесную формулу {=--ИЛИ($B$2:$B$7&$A$2:$A$7=A2&B2)} Оба варианта прелестны и полностью решают мой вопрос! RESOLVED
Каждое препятствие это новая возможность чему-то научиться.
k61 написал: off. Я бы оставил только Васю и Дашу. Это здоровый выбор.
в документе здравоохранения Медицинская Классификация Болезней - этого не прописано! - не вводите людей в заблуждение... ваши представления о здоровье не просто off на ветке "значения опроса", а ложь чистой воды...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
это факт - в ответ на off зачем был off - я не знаю (т.к. не мой)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
JeyCi написал: документе здравоохранения Медицинская Классификация Болезней - этого не прописано!
тут вроде как ни кто болезней не приписал все как бы здоровы просто выразили свое мнение k61, свое ему нравится имя Даша, у vikttur, имя Валя, мне нравится Оля супруга моя кому и чем мы обязаны поклонятся и чем вводим в заблуждение и кого если Вас извиняйте на планете эксель вроде как в правилах не запрещено выражать симпатию к противоположному полу пс если не прав поправьте всегда принимаю критику адекватно
Здравствуйте RAN, Pelena, после 1831 строки макрос съехал и стал подсвечивать не верные взаимосвязи. Возможно вам будет интересно понять причину, я же не нашел почему, лишь смог проверить работу макроса формулой уважаемой Pelena, нашел расхождения, прикрепил. Возможно дело в пробелах - попробовал изменить макрос как советовал RAN (Application.Trim(arr(i, 5)), но видимо не так сделал:
Код
Sub МЯУ()
Dim oDic As Object, i&
Dim arr, oDicItems
Set oDic = CreateObject("Scripting.Dictionary")
arr = [A1].CurrentRegion.Value
For i = 2 To UBound(arr)
oDic.Item (Application.Trim(arr(i, 5)) & "|" & Application.Trim(arr(i, 6)) = Application.Trim(arr(i, 6)) & "|" & Application.Trim(arr(i, 5)))
'oDic.Item(arr(i, 5) & "|" & arr(i, 6)) = arr(i, 6) & "|" & arr(i, 5)
Next
oDicItems = oDic.Items
For i = 0 To UBound(oDicItems)
If oDic.Exists(oDicItems(i)) Then
Cells(i + 2, 5).Resize(, 2).Interior.Color = vbRed
End If
Next
End Sub
Интересно, в чем ошибка - в макросе или в данных файла? Пока пользуюсь формулой {=--ИЛИ($F$2:$F$5019&$E$2:$E$5019=E2&F2)}
RAN, тоесть дело в задвоенном голосе? Странно что такое прошло - у меня проверка стояла на повторы, какой то сбой наверное. Если дело в этом то просто удалю задвоение.
07/12/15 Да, дело в задвоенном голосе, удалил и все встало на место. Спасибо RAN, макрос быстро и качественно работает. RESOLVED
Изменено: Андрей Фетисов - 07.12.2015 09:15:42(Дело в задвоенных ответах.)
Каждое препятствие это новая возможность чему-то научиться.