Проверка данных для IP-адреса в Excel

#excel #validation #excel-formula #conditional-formatting

#excel #проверка #excel-формула #условное форматирование

Вопрос:

Я пытаюсь добавить проверку данных для IP-адреса в свою ячейку. IP-адрес должен быть от 0.0.0.0 до 256.256.256.256. Чтобы проверить действительный IP-адрес, я пытаюсь проверить следующие условия:

 1.there should be only three dots
2.length of digits should be from 4 to 12.
3.not any digit should be more than 256 or less than 0.
4.it should not take any blanks in between
  

Я пытаюсь через данные> проверка данных> пользовательский> формула>

 1.=AND((LEN(C8)-LEN(SUBSTITUTE(C8,".","")))=3,ISNUMBER(SUBSTITUTE(C8,".","") 0))
2.=AND(LEN(C8)-LEN(SUBSTITUTE(C8,".",""))=3,--LEFT(C8,FIND(".",C8)-1)<224,--LEFT(C8,FIND(".",C8)-1)>0,--MID(SUBSTITUTE(C8,"."," "),6,5)<256,--MID(SUBSTITUTE(C8,"."," "),15,7)<256,--MID(SUBSTITUTE(C8,"."," "),22,10)<256)
  

Но все мои условия не удовлетворяются этим.

Пожалуйста, дайте мне знать, как добавить проверку данных для IP с помощью проверки данных или условного форматирования.

Комментарии:

1. Какая версия Excel? MAC или Windows?

2. windows @RonRosenfeld

3. А версия? (например, 2016, O365, 2007)

Ответ №1:

В качестве пользовательского правила проверки попробуйте:

 =AND(COUNT(FILTERXML("<t><s>"amp;SUBSTITUTE(A1,".","</s><s>")amp;"</s></t>","//s[.*1>-1][.*1<256]"))=4,LEN(A1)-LEN(SUBSTITUTE(A1,".",""))=3)
  

Где мы используем FILTERXML для разделения строки на точки и через XPATH , мы возвращаем эти числовые элементы в диапазоне от 0 до 255. Затем COUNT будет проверяться, возвращено ли всего 4 элемента.

Это AND потому, что нам также нужно убедиться, что есть только три точки.

Пожалуйста, обратите внимание, что для использования FILTERXML требуется Excel 2013 или выше (за исключением Excel Online или Mac).

Комментарии:

1. Я думаю, вы можете захотеть изменить значение 257 на 256 (самый большой октет FF )

2. @sonali, добавьте третье требование AND , например: LEN(A1)=LEN(SUBSTITUTE(A1," ",""))

3. @RonRosenfeld, можете ли вы показать мне, что вы имеете в виду в формуле? В настоящее время я устанавливаю его так, как будто он должен быть меньше 257. Разве не требуется диапазон от 0-256?

4. Нет, требуемый диапазон — 0-255. Самый большой октет в IP-адресе равен hex FF = dec 255 . Dec 256 будет шестнадцатеричным 100 , что не является допустимой частью юридического IP-адреса.

5. Выглядит хорошо для меня! Пришлось ввести его в массив в моей версии Excel (2019). Вероятно, будет использовать VBA для версий ниже 2013.