Qu'est-ce que la fonction BITET ?
BITET (BITAND en anglais) te sert quand des informations sont empilées dans un seul entier (droits, options, flags) et que tu dois vérifier ou isoler ce que deux valeurs ont en commun, bit par bit, sans les décoder à la main.
Concrètement, c'est elle qui isole des permissions encodées dans un entier, vérifie si un flag spécifique est activé dans un système de configuration, ou extrait des informations d'un champ binaire importé depuis une base de données ou un système embarqué.

Comprendre chaque paramètre de la fonction BITET
BITET prend deux nombres et les met côte à côte au niveau binaire : peu importe lequel tu places en premier, le résultat est le même puisqu'un bit ne vaut 1 que si les deux bits en face valent 1. La comparaison part toujours de la droite, du bit de poids faible vers la gauche.
Les deux arguments sont obligatoires : il n'y a pas de version à un seul nombre, et chacun doit rester un entier positif pour qu'Excel accepte de le convertir en binaire.
nombre1
: le premier nombre entier à comparer au niveau binaireIl doit être un entier positif ou nul compris entre 0 et 281 474 976 710 655 (soit 2^48 - 1). Excel convertit automatiquement ce nombre en binaire pour effectuer la comparaison bit à bit.
Par exemple, si tu passes 12 comme nombre1, Excel le convertit en binaire : 1100. Chaque bit de cette représentation sera ensuite comparé avec les bits correspondants du nombre2.
nombre2
: le deuxième nombre entier à comparer au niveau binaireComme nombre1, il doit être un entier positif ou nul compris entre 0 et 281 474 976 710 655. Ce nombre sera également converti en binaire pour la comparaison.
La fonction compare chaque bit de nombre1 avec le bit correspondant de nombre2, en partant de la droite (bit de poids faible). Le résultat est la représentation décimale du nombre binaire obtenu après application du ET logique.
Attention : Si nombre1 ou nombre2 est négatif, décimal ou supérieur à 281 474 976 710 655, Excel retournera #NOMBRE!.

Exemples pratiques pas à pas
Comment masquer des bits avec la fonction BITET
Tu dépouilles les relevés d'un banc de registres où plusieurs informations sont empilées dans un même entier. Pour chaque ligne, tu ne veux garder que la zone couverte par le masque fourni par la documentation, et laisser tomber le reste. La fonction BITET compare les deux nombres bit à bit et n'en conserve que la partie commune.
- 1Dans une cellule, écris
=BITET(. - 2En 1er argument : clique sur la cellule qui porte la valeur brute à filtrer,
B2. Elle contient l'entier12, dans lequel le banc de registres a empilé plusieurs informations, et c'est lui qui va perdre tout ce que le masque ne couvre pas. - 3En 2ᵉ argument : clique sur la cellule du masque qui décide des bits à conserver,
C2. Elle contient10, et l'ordre des deux arguments n'a aucune importance puisqu'un bit ne survit que si les deux valent 1. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Les deux références sont relatives, donc chaque registre se retrouve confronté au masque écrit sur sa propre ligne.
=BITET(B2; C2)12 (1100 en binaire) et 10 (1010) puis ne garde un bit que là où les deux valent 1 : il reste 1000, soit 8. Le masque décide de ce qui survit, et rien d'autre ne passe. La ligne 42 face au masque 63 ressort intacte, parce que le masque couvre déjà tous ses bits.Comment vérifier que tous les droits d'un masque sont accordés avec la fonction BITET
Une application encode les droits de chaque utilisateur dans un seul entier, et une fonctionnalité sensible réclame plusieurs droits à la fois pour s'ouvrir. Tu as la liste des profils et le masque des droits exigés, et tu dois dire qui passe vraiment, pas qui en possède un bout. La fonction BITET révèle l'intersection entre le profil et le masque, et il suffit de la comparer au masque pour trancher.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris le test qui confronte le profil aux droits exigés,
BITET(B2; C2)=C2. La fonction BITET, refermée dès cette étape, ne retient que les droits présents des deux côtés, et l'égalité avec le masque n'est vraie que si aucun droit exigé ne manque à l'appel. - 3En 2ᵉ argument : saisis le texte affiché quand le profil couvre tout le masque,
"Oui". Les guillemets sont obligatoires pour qu'Excel affiche ce mot tel quel au lieu de le chercher parmi les noms définis dans le classeur. - 4En 3ᵉ argument : saisis le texte affiché quand il manque au moins un droit,
"Non". Un profil qui possède une partie des droits exigés tombe dans ce cas au même titre qu'un profil qui n'en possède aucun. - 5Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Il n'en reste qu'une à fermer, celle de la fonction SI, puisque celle de la fonction BITET a été refermée au premier argument.
=SI(BITET(B2; C2)=C2; "Oui"; "Non")> 0 ne dirait que « au moins un droit sur les deux », ce qui laisserait passer un profil incomplet. Comparer le résultat au masque lui-même est bien plus exigeant : le profil 11 face aux droits requis 6 ne rend que 2, donc il lui manque un droit et la réponse tombe à « Non ». Le profil 13 face à 5 rend 5, le masque entier, donc l'accès est complet.Comment éviter l'erreur #NOMBRE! avec la fonction BITET
Les relevés viennent d'un export automatique et tu ne maîtrises pas leur propreté : une virgule ou un signe moins traîne de temps en temps dans la colonne. Tu veux que le masquage tienne debout sur toute la hauteur au lieu de s'effondrer ligne après ligne. En arrondissant en amont et en prévoyant un repli, tu récupères tout ce qui est récupérable et tu isoles le reste.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris le masquage à surveiller,
BITET(ENT(A2); B2). Ses deux parenthèses se referment dès cette étape, et la fonction ENT y tronque le nombre importé avant que BITET ne le reçoive, une précaution indispensable puisque BITET refuse un décimal au lieu de l'arrondir elle-même. Le masqueB2, lui, part directement dans la fonction, parce que tu l'écris toi-même et qu'il n'a aucune raison d'être décimal. - 3En 2ᵉ argument : saisis le texte de repli affiché quand le calcul échoue,
"Erreur". Il n'apparaît que sur la ligne du nombre négatif, que la troncature ne sauve pas puisque la fonction ENT laisse-1à-1. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Une seule parenthèse restait ouverte à ce stade, celle de la fonction SIERREUR, car celles des fonctions BITET et ENT ont été refermées au premier argument.
=SIERREUR(BITET(ENT(A2); B2); "Erreur")12,9 lui arrache un #NOMBRE! au lieu de devenir 12. La fonction ENT fait la troncature explicitement et le calcul repart. Le négatif, lui, reste irrécupérable (aucun entier non signé ne lui correspond), d'où le SIERREUR qui affiche « Erreur » sur cette seule ligne.
Les erreurs fréquentes avec la fonction BITET
Deux ennuis viennent de ce que tu donnes à manger à BITET, et un troisième de ce que tu crois qu'elle fait. Un nombre négatif, décimal ou au-delà des 48 bits déclenche #NOMBRE!, tandis qu'une cellule contenant du texte ou un "N/A" importé sort un #VALEUR!.
Le dernier piège n'est pas une erreur affichée mais un mauvais résultat : confondre BITET avec ET, qui répond VRAI/FAUX là où BITET compare les bits un à un.
Erreur #NOMBRE! – Valeur hors limites ou négative
L'erreur #NOMBRE! apparaît quand l'un des arguments est négatif, décimal ou supérieur à 281 474 976 710 655 (limite de 48 bits). Les causes les plus fréquentes sont un nombre négatif importé depuis une source externe, ou un résultat intermédiaire qui dépasse la limite.
Solution : Utilise ENT(ABS(A1)) pour forcer un entier positif avant de passer la valeur à BITET. Pour les cas où la valeur peut légitimement être invalide, protège avec =SIERREUR(BITET(A1; A2); 0) pour neutraliser l'erreur.
Erreur #VALEUR! – Argument non numérique
Cette erreur survient quand l'un des arguments n'est pas un nombre. Une cellule contenant du texte, une cellule vide non protégée, ou une valeur comme "N/A" ou "" peut déclencher cette erreur.
Solution : Vérifie que les deux arguments sont bien numériques avant d'appliquer BITET avec =SI(ET(ESTNUM(A1); ESTNUM(A2)); BITET(A1; A2); "Données invalides"). Cela permet d'afficher un message explicite au lieu d'une erreur brute.
Confusion entre ET logique et BITET
La fonction ET compare des valeurs booléennes et retourne VRAI ou FAUX, tandis que BITET compare des bits individuels de nombres entiers et retourne un entier. =ET(12; 10) retourne VRAI (les deux sont différents de 0), alors que =BITET(12; 10) retourne 8 (comparaison bit à bit : 1100 ET 1010 = 1000).
Solution : Utilise ET pour des comparaisons logiques (est-ce que A est vrai ET B est vrai ?), et réserve BITET pour les opérations sur des valeurs binaires encodées. Si tu travailles avec des 0 et des 1 comme des booléens, ET est probablement la bonne fonction.

BITET vs BITOU vs BITOUEXCLUSIF
Choisis BITET quand tu veux savoir ce que deux nombres ont en commun : c'est elle qui masque des bits et qui teste si un flag précis est présent. Prends BITOU pour fusionner des flags (ajouter une permission à un utilisateur) puisqu'elle garde un bit dès qu'il apparaît dans l'un des deux nombres.
BITOUEXCLUSIF garde le bit uniquement quand les deux diffèrent : c'est l'outil pour repérer ce qui a changé entre deux valeurs ou pour retirer une permission.
| Critère | BITET | BITOU | BITOUEXCLUSIF |
|---|---|---|---|
| Opération | ET logique (AND) | OU logique (OR) | OU exclusif (XOR) |
| Bit résultant = 1 si | Les deux bits = 1 | Au moins un bit = 1 | Exactement un bit = 1 |
| Exemple avec 12 (1100) et 10 (1010) | 8 (1000) | 14 (1110) | 6 (0110) |
| Cas d'usage principal | Masquage, test de flags | Combinaison de flags, union | Détection de différences, chiffrement |
Questions fréquentes
BITET effectue un ET logique bit à bit entre deux nombres. Elle compare chaque bit des deux nombres et retourne 1 seulement si les deux bits correspondants valent 1. Utile pour le masquage de bits, l'extraction de flags ou le traitement binaire lors d'imports de données techniques.
Les opérations bit à bit comparent les nombres au niveau de leur représentation binaire. Par exemple, =BITET(12; 10) convertit 12 en 1100 et 10 en 1010 en binaire, puis compare chaque bit : 1 ET 1 = 1, 1 ET 0 = 0, 0 ET 1 = 0, 0 ET 0 = 0, ce qui donne 1000 en binaire, soit 8 en décimal.
BITET retourne 1 seulement si les deux bits valent 1. BITOU retourne 1 si au moins un des deux bits vaut 1. BITOUEXCLUSIF retourne 1 si exactement un des deux bits vaut 1 (mais pas les deux). Ce sont les opérateurs AND, OR et XOR classiques en programmation.
Non, BITET accepte uniquement des entiers positifs ou nuls compris entre 0 et 281 474 976 710 655 (48 bits). Si tu utilises un nombre négatif ou supérieur à cette limite, Excel retourne #NOMBRE!. Utilise ENT(ABS(valeur)) pour convertir au préalable si nécessaire.
Tu peux utiliser BITET pour vérifier si un flag spécifique est activé. Par exemple, =BITET(permissions; 4) teste si le bit de valeur 4 est activé dans la variable permissions. Si le résultat est différent de 0, le flag est activé. Combine avec SI pour un affichage lisible : =SI(BITET(A1; 4)>0; "Autorisé"; "Refusé").
BITET est disponible depuis Excel 2013 et dans toutes les versions suivantes, y compris Microsoft 365 et Excel pour Mac. Elle est également disponible dans Google Sheets sous son nom anglais. Les versions antérieures à 2013 ne la reconnaissent pas.
Pour aller plus loin
Continue sur ta lancée après la fonction BITET : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



