【Excel】IP 주소의 각 옥텟·Prefix를 빼는 함수
목적
IP 주소 관리 효율성
네트워크 엔지니어의 작업 방식 개혁
전제
기능
B1 셀:1 옥텟 눈
=LEFT(A1,FIND(".",A1)-1)
C1 셀: 2 옥텟 눈
=MID(LEFT(A1,FIND(".",A1,LEN(B1)+2)-1),LEN(B1)+2,3)
D1 셀:3 옥텟 눈
=MID(LEFT(A1,FIND(".",A1,LEN(B1&C1)+3)-1),LEN(B1&C1)+3,3)
E1 셀: 4 옥텟 눈
=SUBSTITUTE(RIGHT(A1,LEN(A1)-LEN(B1&C1&D1)-3),"/"&IFERROR(MID(A1,FIND("/",A1)+1,3),""),"")
F1 셀: Prefix
=SUBSTITUTE(RIGHT(A1,LEN(A1)-LEN(B1&C1&D1&E1)-3),"/","")
덤: 추출한 각 수치를 결합하는 함수
(E1을 E1+1로 하여 대향 기기에 할당할 때 등에 사용)
=B1&"."&C1&"."&D1&"."&E1&IF(F1="","","/"&F1)
이미지
추가: Prefix 표기법에서 서브넷 마스크를 출력하는 함수
A1 셀의 Prefix 서브넷 마스크를 표시합니다./16~/32까지 대응. 드디어 와일드 카드 마스크도.
사실 IP 주소처럼 옥텟마다 1셀을 사용하는 것이 편하지만, 아무래도 하나의 셀에 들어갈 필요가 있어, 함수를 진짜로 짜서 실현.
서브넷 마스크:
=IF($A1="","",IF(RIGHT($A1,2)*1=16,"255.255.0.0",IF(RIGHT($A1,2)*1>24,"255.255.255."&256-2^(7-MOD(RIGHT($A1,2)-1,8)),"255.255."&256-2^(7-MOD(RIGHT($A1,2)-1,8))&".0")))
들여쓰기를 붙인다.
=IF($A1="","",
IF(RIGHT($A1,2)*1=16,"255.255.0.0",
IF(RIGHT($A1,2)*1>24,
"255.255.255."&256-2^(7-MOD(RIGHT($A1,2)-1,8)),
"255.255."&256-2^(7-MOD(RIGHT($A1,2)-1,8))&".0"
)
)
)
와일드 카드 마스크
=IF($A1="","",IF(RIGHT($A1,2)*1=16,"0.0.255.255",(IF(RIGHT($A1,2)*1>24,"0.0.0."&2^(7-MOD(RIGHT($A1,2)*1-1,8))-1,"0.0."&2^(7-MOD(RIGHT($A1,2)*1-1,8))-1&".255"))))
구조는 서브넷 마스크와 동일하다.※처음에 A1셀이 공백인가를 확인하고 있는 것은, 이 함수를 복수행에 쭉 복사해 사용하는 것을 상정하고 있기 때문. 이것이 없으면 빈 줄에 대해
#VALUE
를 반환하기 때문에 아름답지 않고 셀의 수만큼 RIGHT를 처리 해 버리기 때문에 늦어질지도,라고 생각하고 있다.※Prefix는
RIGHT($A1,2)
로 취득하고 있다. RIGHT의 결과는 문자열로 반환되므로 거기에서 *1하여 숫자의 대소를 비교할 수 있도록 하고 있다. 위 그림과 같이 다른 셀에서 Prefix만 출력되어 있다면 RIGHT($A1,2)*1
를 $F1
로 바꾸어도 OK.Prefix의 값 (F1 셀)에서 서브넷 마스크를 한 발 출력
=IF($F1=0,"0.0.0.0",IF(INT(($F1-1)/8)>=1,"255."&IF(INT(($F1-1)/8)>=2,"255."&IF(INT(($F1-1)/8)>=3,"255.",""),""),"")&256-2^(8-(MOD($F1-1,8)+1))&IF(INT(($F1-1)/8)<3,".0"&IF(INT(($F1-1)/8)<2,".0"&IF(INT(($F1-1)/8)<1,".0",""),""),""))
=IF($F1=0,"0.0.0.0",
IF(INT(($F1-1)/8)>=1,"255."&
IF(INT(($F1-1)/8)>=2,"255."&
IF(INT(($F1-1)/8)>=3,"255."
,"")
,"")
,"")&
256-2^(8-(MOD($F1-1,8)+1))&
IF(INT(($F1-1)/8)<3,
".0"&
IF(INT(($F1-1)/8)<2,".0"&
IF(INT(($F1-1)/8)<1,.0",
"")
,"")
,"")
)
※/0~/32라면, 전부 33종류. 옥텟 수 4 × 각 옥텟 8 패턴의 처리라면 하나 부족하다. 그 때문에,/0을 특수 패턴으로서, 최초로 판별하고 있다.
추가 _20201205 : Prefix가없는 네트워크 주소 (A1 셀)에서 첫 번째 호스트 주소를 출력
=LEFT($A$1,FIND("Γ",SUBSTITUTE($A$1,".","Γ",LEN($A$1)-LEN(SUBSTITUTE($A$1,".","")))))&MID($A$1,FIND("Γ",SUBSTITUTE($A$1,".","Γ",LEN($A$1)-LEN(SUBSTITUTE($A$1,".",""))))+1,3)+1
=LEFT($A$1,
FIND("Γ",
SUBSTITUTE($A$1,".","Γ",
LEN($A$1)-
LEN(UBSTITUTE($A$1,".",""))
)
)
)&
MID($A$1,
FIND("Γ",
SUBSTITUTE($A$1,".","Γ",
LEN($A$1)-
LEN(SUBSTITUTE($A$1,".",""))
)
+1,3)
+1
참고 : htp : // bg. 에 xse l-sys. 코m/엔트리/165/
Reference
이 문제에 관하여(【Excel】IP 주소의 각 옥텟·Prefix를 빼는 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/AnPanda/items/93390f43b7115873c4e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)