XL 2016 Que veut dire ce début de formule

Collins

XLDnaute Occasionnel
Bonjour à tous

J'ai un exemple d'une formule (exemple ci-dessous)
=SI(B$7>ENT((LIGNE()-8)/4);RECHERCHEV("*"&B$4&"*";DECALER(D$4;B12;0):E$100;2;FAUX);"")

Pouvez vous s'il vous plait m'expliquer ce qu'elle fait.
Que veut dire >ENT((LIGNE()(-8)4) :

Et le DECALER : Qu'est ce qui est décalé

Pour RECHERCHEV je connais mieux.
 

CISCO

XLDnaute Barbatruc
Bonjour

ENT((LIGNE()-8)/4)
Imaginons que cette formule soit sur la ligne 10.
Cela donne ENT((10-8)/4) =ENT((2)/4) = ENT(0,5) = 0 (ENT retourne le nombre entier qui correspond à la valeur entre parenthèses).

DECALER utilise la syntaxe suivante
DECALER(une cellule ou une plage; décalage de x lignes; décalage de y colonnes; nombre de lignes retournées; nombre de colonnes retournées), seuls les 3 premiers paramètres étant obligatoires

Ainsi
DECALER(A1;2;3) donnera -->A3 (décalage de 2 lignes) -->D3 (décalage de 3 colonnes).

On peut faire avec DECALER(cellule;x; ) donc apparemment sans le 3ème paramètre, si il ni a pas de décalage de colonne.


Pour voir les calculs intermédiaires, il faut faire avec Formule --> Évaluation de formule. C'est vraiment très pratique si on ne travail pas sur des plages trop grandes.

@ plus
 
Dernière édition:

Collins

XLDnaute Occasionnel
Merci Pour vos réponses

Tu as raison ton exemple me vas mieux qu'un bon discours
J'ai compris ton essai Sylvanu, en mettant à coté la formule avec -9/5 mais sur mon exemple je pars de la cell B7et juste dessous en B8 j'ai la formule : =SI(B$7>ENT((LIGNE()-8)/4);RECHERCHEV("*"&B$4&"*";D:E;2;FAUX);"")

Et c'est ce > ENT((LIGNE()-8/4 que je ne comprend pas par rapport à B7

CISCO je prend bien en compte ton explication, je ferai des essais
 

micheldu52

XLDnaute Occasionnel
Bonsoir,
Cette formule est extraite de ma réponse d'hier à Marjorie123.... (voir fil de mail ce matin 8h36 pour sa réponse)
Elle est destinée à séparer une série d'informations (extraites aux bons endroits par recherchev) qui se répètent (sur la forme) toutes les 4 lignes aussi longtemps que la fonction recherchev renvoie l'existence d'une information suivante à extraire.
l'information clef de recherche se définie par "*"&B$4&"*" car la séquence B4 peut être à plusieurs endroits dans la classe de recherche en fonction de la ligne exploitée.
Etudie sa question et ma réponse et fait des essais…
Cordialement,
Michel
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,
Que veut dire >ENT((LIGNE()-8)/4) :
Et c'est ce > ENT((LIGNE()-8)/4) que je ne comprend pas par rapport à B7
Ligne() retourne le numéro de la ligne où se trouve cette formule (donc pour cette formule qui se trouve en ligne 8, ça te renvoie 8).
En suite tu retranches 8 (donc pour la ligne 8, ça te donne zéro puisque 8-8 = 0).
En suite tu divises le résultat par 4 (pour la ligne 8 ça te donne donc zéro puisque 0/4 = 0).
Et tu prends la partie entière de cette division (pour la ligne 8 ça te donne donc zéro puisque ENT(0) = 0).

Pour la ligne 8 : ENT((LIGNE()-8/4) = ENT((8-8)/4) = ENT(0/4) = ENT(0) = 0
Pour la ligne 9 : ENT((LIGNE()-8/4) = ENT((9-8)/4) = ENT(1/4) = ENT(0,25) = 0
Pour la ligne 10 : ENT((LIGNE()-8/4) = ENT((10-8)/4) = ENT(2/4) = ENT(0,5) = 0
Pour la ligne 11 : ENT((LIGNE()-8/4) = ENT((11-8)/4) = ENT(3/4) = ENT(0,75) = 0

Pour la ligne 12 : ENT((LIGNE()-8/4) = ENT((12-8)/4) = ENT(4/4) = ENT(1) = 1
Pour la ligne 13 : ENT((LIGNE()-8/4) = ENT((13-8)/4) = ENT(5/4) = ENT(1,25) = 1
Pour la ligne 14 : ENT((LIGNE()-8/4) = ENT((14-8)/4) = ENT(6/4) = ENT(1,5) = 1
etc.
 

Collins

XLDnaute Occasionnel
Bonjour le fil
Merci Michel et Marcel
C'est une aide supplémentaire aux explications de Sylvanu et Cisco.
J'ai bien regardé le fichier de Marjorie. Et en changeant de chiffres j'ai bien pu voir comment le décalage se faisait. c'est en faisant des essais que l'on comprend mieux.
Bonne journée
 

Discussions similaires

Réponses
1
Affichages
393
Réponses
3
Affichages
330

Membres actuellement en ligne

Statistiques des forums

Discussions
314 022
Messages
2 104 732
Membres
109 116
dernier inscrit
RALAIZANAKA