У меня есть лист, который выглядит примерно так:
A B C D E (DESIRED RESULT, F)
TIME1 IP_ADDRESS1 TIME1 IP_ADDRESS1 DOMAIN1 DOMAIN1
TIME2 IP_ADDRESS2 TIME2 IP_ADDRESS2 DOMAIN2 DOMAIN2
TIME3 IP_ADDRESS3 TIME3 IP_ADDRESS3 DOMAIN3 DOMAIN3 / DOMAIN4
TIME3 IP_ADDRESS1 TIME3 IP_ADDRESS3 DOMAIN4 -
TIME3 IP_ADDRESS2 TIME4 IP_ADDRESS4 DOMAIN5 -
TIME4 IP_ADDRESS4 TIME5 IP_ADDRESS5 DOMAIN6 DOMAIN5
TIME5 IP_ADDRESS5 TIME5 IP_ADDRESS6 DOMAIN7 -
То, над чем я ломал голову, пытаясь сделать, эквивалентно следующему:
если время в столбце A совпадает со временем в столбце C, то проверьте, содержится ли IP-адрес в столбце B также в столбце D, а затем верните соответствующий домен в столбце F.
Например, в приведенном выше рабочем листе DOMAIN1 возвращается первым, поскольку время и домен совпадают в обоих наборах столбцов. DOMAIN3 / DOMAIN4 возвращается, поскольку есть два домена с одинаковым временем И IP-адресом. Надеюсь, это понятно.
Я пробовал разные варианты ИНДЕКС, ПОИСКПОЗ, ВПР и т. д., но так и не смог ничего понять.
Любая помощь будет оценена по достоинству...
решение1
Если я правильно понял, в последней строке в результате должен быть DOMAIN6, и это можно сделать с помощью следующей формулы:
=TEXTJOIN(" / ",TRUE,IFERROR(FILTER($E$2:$E$8,($C$2:$C$8=$A2)*($D$2:$D$8=$B2)),"-"))
Другими словами, отфильтруйте все строки для столбца E, где соответствующее значение в столбце C соответствует текущей строке в столбце A, а соответствующее значение в столбце D соответствует текущей строке в столбце B.
Если FILTER
ничего не возвращается, просто верните тире.
Для массивов, возвращаемых с более чем одним элементом, объедините их с указанным разделителем.