Hehe - mno, mám rád když se po ránu mohu rozehřát něčím, co zapojí mé závity.
Formátem to nelze, protože pokud máte zapsánu IP adresu ve formátu "x.x.x.x", tak to není číslo, ale text a ten nenaformátujete. A pokud ho máte decimálně, tak to zase formátem do tohoto tvaru nedostanete.
Takže:
bez ohledu na význam jednotlivých částí - dotaz zněl k IP adrese přičíst 1
1. Musíte převést IP (v buňce A1) do decimálního tvaru - třeba takto (B1)
=HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))2. Pak můžete přičíst 1 a převést zpět do tvaru adresy - třeba takto (C1)
=HEX2DEC(ZLEVA(DEC2HEX(B1+1;8);2))&"."&HEX2DEC(ČÁST(DEC2HEX(B1+1;8);3;2))&"."&HEX2DEC(ČÁST(DEC2HEX(B1+1;8);5;2))&"."&HEX2DEC(ZPRAVA(DEC2HEX(B1+1;8);2))No a pokud to chcete v jedné buňce, tak z toho vyleze takováto šílenost ;))
=HEX2DEC(ZLEVA(DEC2HEX(HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))+1;8);2))&"."&HEX2DEC(ČÁST(DEC2HEX(HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))+1;8);3;2))&"."&HEX2DEC(ČÁST(DEC2HEX(HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))+1;8);5;2))&"."&HEX2DEC(ZPRAVA(DEC2HEX(HEX2DEC(DEC2HEX(ZLEVA(A1;NAJÍT(".";A1)-1)/1;2)&DEC2HEX(ČÁST(A1;NAJÍT(".";A1)+1;NAJÍT("|";DOSADIT(A1;".";"|";2))-NAJÍT(".";A1)-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";2))+1;NAJÍT("|";DOSADIT(A1;".";"|";3))-NAJÍT("|";DOSADIT(A1;".";"|";2))-1);2)&DEC2HEX(ČÁST(A1;NAJÍT("|";DOSADIT(A1;".";"|";3))+1;3);2))+1;8);2))
Vzorce anglicky (pro ostatní národy a šťastlivce s anglickou lokalizací ;) )
B1:
=HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))C1:
=HEX2DEC(LEFT(DEC2HEX(B1+1,8),2))&"."&HEX2DEC(MID(DEC2HEX(B1+1,8),3,2))&"."&HEX2DEC(MID(DEC2HEX(B1+1,8),5,2))&"."&HEX2DEC(RIGHT(DEC2HEX(B1+1,8),2))Do jedné buňky
=HEX2DEC(LEFT(DEC2HEX(HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))+1,8),2))&"."&HEX2DEC(MID(DEC2HEX(HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))+1,8),3,2))&"."&HEX2DEC(MID(DEC2HEX(HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))+1,8),5,2))&"."&HEX2DEC(RIGHT(DEC2HEX(HEX2DEC(DEC2HEX(LEFT(A1,FIND(".",A1)-1)/1,2)&DEC2HEX(MID(A1,FIND(".",A1)+1,FIND("|",SUBSTITUTE(A1,".","|",2))-FIND(".",A1)-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",2))+1,FIND("|",SUBSTITUTE(A1,".","|",3))-FIND("|",SUBSTITUTE(A1,".","|",2))-1),2)&DEC2HEX(MID(A1,FIND("|",SUBSTITUTE(A1,".","|",3))+1,3),2))+1,8),2))
Možná je toto ten případ, že bych uvažoval o UDF - ale nevím ;)
Technická
prosím, přejmenujte vlákno (pokud to lze) aby bylo jasné, že to není o formátu, ale o práci s IP adresou. Děkuji
citovat