#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
= dec255
. Dec256
будет шестнадцатеричным100
, что не является допустимой частью юридического IP-адреса.5. Выглядит хорошо для меня! Пришлось ввести его в массив в моей версии Excel (2019). Вероятно, будет использовать VBA для версий ниже 2013.