Итак, у меня есть гигантский документ Excel, который содержит список IP-адресов, но есть также записи с подсетями. Так, например, я мог бы видеть "IP" «/16», и первые два октета будут первыми двумя октетами IP-адреса подсети. Что мне интересно, так это то, что если есть какой-нибудь способ с Excel, я могу проверить, совпадают ли первые два октета IP-совпадения с одной строкой в подсети /16. В основном я хочу знать, есть ли способ найти записи, которые перекрывают друг друга. Например, 192.168.1.1 192.168.0.0 /16, 192.168.1.1 будет выделен красным или любым другим цветом. Я знаю, что вы бы использовали if, или, по крайней мере, я думаю, но я не могу понять, как я бы разделил два октета и сравнил их, а также учел тот факт, что тот, с которым нужно сравнивать, должен иметь "/16" в том же ряду. Любая помощь будет принята с благодарностью, и если это не имеет никакого смысла, прокомментируйте, и я постараюсь уточнить. Спасибо!

2 ответа2

0

Я думаю, что проще всего сначала разбить IP на октеты. Тогда вы можете использовать объединение для воссоединения октетов 1 и 2. Оттуда вы можете использовать условное форматирование, vlookup или любой другой метод для сравнения значений.

Я искал какое-то руководство по манипулированию IP-адресами для аналогичного проекта для домашних животных и нашел следующую статью чрезвычайно полезной.

http://chentiangemalc.wordpress.com/2011/02/03/geeky-excel-formulas-subnet-math-group-by-subnet-using-built-in-excel-2010-formulas/

Я обнаружил, что формула для второго октета была немного ошибочной, поэтому я переработал ее.

Вернуть октет 1 IP в ячейке A2

= ЛЕВЫЙ (А2, FIND ("", А2)-1)

Вернуть октет 2 IP в ячейке A2

= Влево (вправо (А2, (LEN (А2)-Найти (" " А2))), FIND (". " ПРАВЫЙ (А2, (LEN (А2)-Найти (".", А2))))-1)

Вернуть октет 3 IP в ячейке A2

= Влево (вправо (ПРАВЫЙ (А2, (LEN (А2)-Найти (А2))), LEN (ПРАВЫЙ (А2, (LEN (А2)-Найти (А2))))" ""." - FIND (». " ПРАВЫЙ (А2, (LEN (А2)-Найти (". " А2))))), FIND (". " RIGHT (ПРАВЫЙ (А2, (LEN (А2)-Найти (" . "А2))), LEN (ПРАВЫЙ (А2, (LEN (А2)-Найти (" "А2)))- FIND.)(". ", ПРАВЫЙ (А2, (LEN (А2)-Найти ("", А2))))))- 1)

Вернуть октет 4 IP в ячейке A2

= RIGHT(ПРАВЫЙ (ПРАВЫЙ (А2, (LEN (А2)-Найти (А2))), LEN (ПРАВЫЙ (А2, (LEN (А2)-Найти (А2))))" ""." - FIND (" " ПРАВЫЙ (А2, (LEN (А2)-Найти (". " А2))))), (LEN (ПРАВЫЙ (А2, (LEN (А2)-Найти (".", А2))))- FIND (, ПРАВЫЙ (А2, (LEN (А2 " ")(-Найти, А2". "))))-"." (FIND, RIGHT(правая (А2, (LEN (А2)- FIND (А2 " "))), LEN (ПРАВЫЙ (А2, (LEN (A2)-find (А2)". ")))-"." FIND (, RIGHT(А2, (LEN (A2)-find ("", A2))))))))

-1

Попробуйте это для четвертого октета. TRIM(ПРАВО (ЗАМЕНА (A2, ".", REPT ("", 15)), 15))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .