=LOOKUP(SUM(--MID(SUBSTITUTE(MID(B2,7,7),".",REPT(" ",6)),{1,4},{3,15})*{1000,1}),MMULT(--MID(SUBSTITUTE(MID($J$2:$J$5,7,7),".",REPT(" ",6)),{1,4},{3,15})*{1000,1},{1;1}),$I$2:$I$5)
数组公式,用ctrl+shift+enter结束
前提,是按前两位全是18.27列的公式,如果不是的话,公式要复杂些。ip段按ip的升序,且中间不间断(未考虑IP不在IP段中的情况)
其中,b2是所求ip,j2:j5是ip段起,i2:i5是部门,均不包括表头
如果ip全用0补足3位的话就方便多了,这个公式长就长在这里
=IF(MID(B1,7,2)*1=45,"甲",IF(MID(B1,10,3)*1<=100,"乙",IF(MID(B1,10,3)*1<185,"丙","丁")))
或者:
=IF(MID(B2,7,2)*1=45,"甲",LOOKUP(--MID(B2,10,3),{1,101,186},{"乙","丙","丁"}))
把ip分成四个单独的单元格(分列可以完成),如A 18.27.45.170分成:
A B C D E F
1 A 18 27 45 170
在F1单元格输入:=IF(AND(输入甲的ip范围条件,即:A1的范围,B1的范围,C1的范围,D1的范围),"甲",IF(AND(输入乙的ip范围条件,即:A1的范围,B1的范围,C1的范围,D1的范围),"乙",IF(AND(N条件),"N".....))) 有多少个条件就输入多少个。
如:IF(AND(A1>=1,A1<10,B1>=10,B1<19,C1>=25,C1<35,D1>=170,D1<180),"甲""乙")
假设表格的第一行是表头 且A列是用户B列是IP C列是地址,
你在D2中输入=IF(MID(B2,7,2)="45","甲",LOOKUP(--MID(B2,10,LEN(B2)-9),{1,101,186},{"乙","丙","丁"}))
然后向下拖拽填充.然后排序.就可以获得分组了
用函数的话貌似很麻烦,首先想到的就是将用户IP和各个IP段分列,分成4段、分放到4个单元格中,再写公式。。。
这还不如手工来的快,先对用户的IP 地址列进行扩展排序(添加一辅助列,如C列,C2输入公式=mid(a1,11,3) 向下拉填充公式,再对C列排序),再核对