Convertir une adresse IP en binaire

MRick

XLDnaute Nouveau
Préambule : J'ai mis comme préfixe Excel 2007, mais je n'en suis pas sûr à 100%. Il s'agit de la première version d'Excel que j'utilise où il n'existe pas de menu Aide / à propos de...

J'ai dans un tableau des adresses IP, et je souhaiterais les convertir en binaire.

Dans une case, j'ai par exemple 131.100.105.63, et je voudrais obtenir ceci : 10000011 01100100 01101001 00111111 (éventuellement dans 4 cases différentes, c'est pas gênant, et c'est plus lisible)

J'arrive bien à convertir un décimal en binaire grâce à BINDEC, mais c'est la conversion de la chaine de caractère en 4 décimaux qui me pose problème.

Voici ce que j'aimerais obtenir (là je me concentre sur les 2 premiers digits, mais si je sais en faire deux, je saurais faire les autres) :

Code:
131.100.105.63	131	100	10000011	1100100
131.100.105.63	131	100	10000011	01100100
134.205.26.136	134	205	10000110	11001101
134.229.65.128	134	229	10000110	11100101
135.42.32.147	135	42	10000111	00101010
135.42.32.86	135	42	10000111	00101010
136.181.50.79	136	181	10001000	10110101
136.181.50.83	136	181	10001000	10110101
144.169.73.33	144	73	10010000	01001001
144.169.81.32	144	81	10010000	1010001


Je suis parti sur une tentative d'extraire les 4 chiffres dans 4 colonnes.
Je voulais faire la première colonne avec GAUCHE et je pensais faire la seconde colonne avec STXT.
J'ai essayé d'extraire les premiers chiffres avec cette formule, mais ça ne fonctionne pas :
=GAUCHE(A2; RECHERCHE(".";A2;1)) renvoie #N/A

(A2 est la case contenant mon adresse IP)

Si je mets =GAUCHE(A2; 3) ça fonctionne bien, sauf que parfois le nombre n'a que 2 ou 1 chiffre...

Si je fais juste =RECHERCHE(".";A2;1) ça me renvoie systématiquement #N/A, et je ne comprends pas pourquoi.

Pouvez-vous m'aider ? :confused:
 

blord

XLDnaute Impliqué
Re : Convertir une adresse IP en binaire

Bonjour à vous,

Pourquoi ne pas utiliser la fonction Convertir du menu Données pour séparer tes adresses IP en 4 colonnes différentes puisque chaque adresse IP se compose de 4 séries de chiffres séparées par des points.

Ensuite tu utilise ton code pour convertir chacune des cellules...

Si j'ai bien compris ....

Blord
 

tototiti2008

XLDnaute Barbatruc
Re : Convertir une adresse IP en binaire

Bonjour Blord,
Re,

Oui, avec Convertir ça marche, mais c'est beaucoup plus facile avec une formule matricielle :D

Si l'IP en A1, tu peux mettre la formule là en B1

Code:
=STXT($A1;PETITE.VALEUR((STXT($A1&".";LIGNE(INDIRECT("A1:A"&NBCAR($A1)+1));1)=".")*LIGNE(INDIRECT("A1:A"&NBCAR($A1)+1));NBCAR($A1)-4+COLONNE(A1))+1;PETITE.VALEUR((STXT($A1&".";LIGNE(INDIRECT("A1:A"&NBCAR($A1)+1));1)=".")*LIGNE(INDIRECT("A1:A"&NBCAR($A1)+1));NBCAR($A1)-3+COLONNE(A1))-PETITE.VALEUR((STXT($A1&".";LIGNE(INDIRECT("A1:A"&NBCAR($A1)+1));1)=".")*LIGNE(INDIRECT("A1:A"&NBCAR($A1)+1));NBCAR($A1)-4+COLONNE(A1))-1)

à valider par Ctrl+Maj+Entrée, puis à recopier vers la droite :eek:
 

david84

XLDnaute Barbatruc
Re : Convertir une adresse IP en binaire

Bonsoir tout le monde,
formules uniques non matricielles à tester :
Code:
=STXT($A1;CHERCHE(CAR(255);SUBSTITUE("."&$A1&".";".";CAR(255);COLONNES($A:A)));CHERCHE(CAR(255);SUBSTITUE("."&$A1&".";".";CAR(255);COLONNES($A:B)))-CHERCHE(CAR(255);SUBSTITUE("."&$A1&".";".";CAR(255);COLONNES($A:A)))-1)
pour découper la chaîne en sous-chaînes,
Code:
=DECBIN(STXT($A1;CHERCHE(CAR(255);SUBSTITUE("."&$A1&".";".";CAR(255);COLONNES($A:A)));CHERCHE(CAR(255);SUBSTITUE("."&$A1&".";".";CAR(255);COLONNES($A:B)))-CHERCHE(CAR(255);SUBSTITUE("."&$A1&".";".";CAR(255);COLONNES($A:A)))-1))
pour la conversion en nombre binaire
A+
 
Dernière édition: