Доброго времени, уважаемые форумчане. На работе почти ежедневно приходится работать с огромным количеством данных (списки АРМ, IP адреса).
Суть такова, есть 2 листа, которые генерит сервер по опросу в один файл ехель, на выходе имеем 1 лист с адресом и диапазоном портов, на втором листе АРМы с конкретным IP адресом. Так вот, очень упростило бы жизнь, если кто-нибудь помог написать формулу, которая проверяла принадлежность IP адреса диапазону и если он принадлежит, то подтягивала к нему адрес, где он находится на 2 лист. Если же нет, то к примеру выделяла его красным.
по-сути скорее всего это пару простых if, сам не могу никак додуматься, кидаю чистое тело в приложения. Куча сотрудников будет очень благодарна!
P.S. Диапазон выводится в формате ХХХ.ХХХ.ХХХ.ХХХ-ХХХ.ХХХ.ХХХ.ХХХ на 1 ячейку, поменять возможности нет...
Доброго времени, уважаемые форумчане. На работе почти ежедневно приходится работать с огромным количеством данных (списки АРМ, IP адреса).
Суть такова, есть 2 листа, которые генерит сервер по опросу в один файл ехель, на выходе имеем 1 лист с адресом и диапазоном портов, на втором листе АРМы с конкретным IP адресом. Так вот, очень упростило бы жизнь, если кто-нибудь помог написать формулу, которая проверяла принадлежность IP адреса диапазону и если он принадлежит, то подтягивала к нему адрес, где он находится на 2 лист. Если же нет, то к примеру выделяла его красным.
по-сути скорее всего это пару простых if, сам не могу никак додуматься, кидаю чистое тело в приложения. Куча сотрудников будет очень благодарна!
P.S. Диапазон выводится в формате ХХХ.ХХХ.ХХХ.ХХХ-ХХХ.ХХХ.ХХХ.ХХХ на 1 ячейку, поменять возможности нет...hitman1316
Если же в диапазоне проверяемых будут IP, которые не принадлежат ни одному из диапазонов, формула усложнится проверкой верхней границы диапазона.vikttur
У меня тоже с допстолбцами, но немного более другие формулы Преобразование произвольного IP в числовой вид (можно не 1000^, а 256^, но тогда числовой вид визуально не будет похож на исходный) (в файле точки поставлены форматом ячейки)
У меня тоже с допстолбцами, но немного более другие формулы Преобразование произвольного IP в числовой вид (можно не 1000^, а 256^, но тогда числовой вид визуально не будет похож на исходный) (в файле точки поставлены форматом ячейки)
Нет, последний фрагмент границы диапазона может быть Х, ХХ, ХХХ
Да, вы правы, может и 10.20.1.100 и все остальные возможные варианты. К сожалению посмотреть смогу только вечером. А если преобразовывать в числовой формат, то он будет считать до 255? Тк айпишники имеют вид 255.255.255.255. Наверно нужно будет как-то отрезать числа, после 255
IP могут и вовсе быть вне диапазона, их в идеале как-то выделить. Можно красным, как предлагают выше
Нет, последний фрагмент границы диапазона может быть Х, ХХ, ХХХ
Да, вы правы, может и 10.20.1.100 и все остальные возможные варианты. К сожалению посмотреть смогу только вечером. А если преобразовывать в числовой формат, то он будет считать до 255? Тк айпишники имеют вид 255.255.255.255. Наверно нужно будет как-то отрезать числа, после 255
IP могут и вовсе быть вне диапазона, их в идеале как-то выделить. Можно красным, как предлагают вышеhitman1316
Сообщение отредактировал hitman1316 - Пятница, 14.07.2017, 06:55
может и 10.20.1.100 и все остальные возможные варианты
В файле нет вариантов типа ХХ.ХХ.Х.ХХХ и нигде ранее не упоминалось, что IP в этой конкретной задаче могут отличаться от маски ХХ.ХХХ.ХХ.здесь_до_трех_Х
может и 10.20.1.100 и все остальные возможные варианты
В файле нет вариантов типа ХХ.ХХ.Х.ХХХ и нигде ранее не упоминалось, что IP в этой конкретной задаче могут отличаться от маски ХХ.ХХХ.ХХ.здесь_до_трех_Хvikttur
В файле нет вариантов типа ХХ.ХХ.Х.ХХХ и нигде ранее не упоминалось, что IP в этой конкретной задаче могут отличаться от маски ХХ.ХХХ.ХХ.здесь_до_трех_Х
Когда речь идет о IP, мне кажется итак поня но, что он может быть всевозможным, и 2 и 3 и 1 символьный на одну точку.
В файле нет вариантов типа ХХ.ХХ.Х.ХХХ и нигде ранее не упоминалось, что IP в этой конкретной задаче могут отличаться от маски ХХ.ХХХ.ХХ.здесь_до_трех_Х
Когда речь идет о IP, мне кажется итак поня но, что он может быть всевозможным, и 2 и 3 и 1 символьный на одну точку.hitman1316
Я вернулся Формулы мучить не стал, на основе предыдущей задумки соорудил UDF [vba]
Код
Function AddrIP(r1 As Range, r2 As Range) As String Dim sAddr As String, sTxt As String, sBrdr As String Dim i As Long, j As Long For j = 0 To 3: sAddr = sAddr & Format(Split(r1, ".")(j), "000"): Next j
For i = 1 To r2.Rows.Count sBrdr = "": sTxt = Split(r2(i, 2).Value, "-")(0) For j = 0 To 3: sBrdr = sBrdr & Format(Split(sTxt, ".")(j), "000"): Next j
If Val(sAddr) >= Val(sBrdr) Then sBrdr = "": sTxt = Split(r2(i, 2).Value, "-")(1) For j = 0 To 3: sBrdr = sBrdr & Format(Split(sTxt, ".")(j), "000"): Next j
If Val(sAddr) <= Val(sBrdr) Then AddrIP = r2(i, 1).Value: Exit Function End If Next i End Function
[/vba]
Я вернулся Формулы мучить не стал, на основе предыдущей задумки соорудил UDF [vba]
Код
Function AddrIP(r1 As Range, r2 As Range) As String Dim sAddr As String, sTxt As String, sBrdr As String Dim i As Long, j As Long For j = 0 To 3: sAddr = sAddr & Format(Split(r1, ".")(j), "000"): Next j
For i = 1 To r2.Rows.Count sBrdr = "": sTxt = Split(r2(i, 2).Value, "-")(0) For j = 0 To 3: sBrdr = sBrdr & Format(Split(sTxt, ".")(j), "000"): Next j
If Val(sAddr) >= Val(sBrdr) Then sBrdr = "": sTxt = Split(r2(i, 2).Value, "-")(1) For j = 0 To 3: sBrdr = sBrdr & Format(Split(sTxt, ".")(j), "000"): Next j
If Val(sAddr) <= Val(sBrdr) Then AddrIP = r2(i, 1).Value: Exit Function End If Next i End Function
Я вернулся Формулы мучить не стал, на основе предыдущей задумки соорудил UDF
Цитату порезал. Зачем она такая большая? Да и противоречит Правилам форума _Boroda_
И вам огромное спасибо! Оба решения подошли, только это с одной стороны без громоздких формул, а с другой, я пока не понимаю, что такое UDF, как оно работает и как это сделать на раб машине) Ни флешек ни почты там нету, все отрубили СБСники. Будем разбираться)
Я вернулся Формулы мучить не стал, на основе предыдущей задумки соорудил UDF
Цитату порезал. Зачем она такая большая? Да и противоречит Правилам форума _Boroda_
И вам огромное спасибо! Оба решения подошли, только это с одной стороны без громоздких формул, а с другой, я пока не понимаю, что такое UDF, как оно работает и как это сделать на раб машине) Ни флешек ни почты там нету, все отрубили СБСники. Будем разбираться)hitman1316
Ни флешек ни почты там нету, все отрубили СБСники.
[offtop]Если есть собственный опыт или умеющие это делать друзья, то можно вынуть винчестер из раб.машины и вставить его как slave в недоменный компьютер - и СБСники нервно курят. А если в биосе старт с CD или USB прописан раньше HDD, то можно попробовать загрузиться с LiveCD или LiveUSB. Или еще проще - с флэшки с Линуксом. Это всё к вопросу о закрытых USB и путях переноса информации из/в компьютер в этих условиях.
Ни флешек ни почты там нету, все отрубили СБСники.
[offtop]Если есть собственный опыт или умеющие это делать друзья, то можно вынуть винчестер из раб.машины и вставить его как slave в недоменный компьютер - и СБСники нервно курят. А если в биосе старт с CD или USB прописан раньше HDD, то можно попробовать загрузиться с LiveCD или LiveUSB. Или еще проще - с флэшки с Линуксом. Это всё к вопросу о закрытых USB и путях переноса информации из/в компьютер в этих условиях.Gustav