Décalage avec INDEX & EQUIV et la fonction "" ( vide )
Résolu
KingKong
-
KingKong -
KingKong -
A voir également:
- Excel decaler equiv
- Liste déroulante excel - Guide
- Décaler colonne excel - Guide
- Word et excel gratuit - Guide
- Equiv excel anglais - Guide
- Si ou excel - Guide
4 réponses
Bonjour,
Je suis passé par Excel (impossible à modifié sur LO) - J'ai modifié la formule en D2, elle fonctionne en ajoutant SIERREUR()
https://www.cjoint.com/c/KIwnLDAKyLe
Cordialement
Je suis passé par Excel (impossible à modifié sur LO) - J'ai modifié la formule en D2, elle fonctionne en ajoutant SIERREUR()
=SIERREUR(INDEX(champ;PETITE.VALEUR(SI(ESTNA(EQUIV(champ;champ;0));"";EQUIV(champ;champ;0));LIGNE(INDIRECT("1:"&LIGNES(champ)))));"")
https://www.cjoint.com/c/KIwnLDAKyLe
Cordialement
Sur ton fichier il y une macro et je ne sais pas à quoi elle sert c'est du chinois pour moi
J'ai testé la formule sur un fichier sans macro - sélectionne la zone à traiter - du copie la formule sans les crochets { } - tu la colles dans la barre de formule et le raccourci pour mettre en matricielle est Ctrl+Maj+Enter
Cordialement
J'ai testé la formule sur un fichier sans macro - sélectionne la zone à traiter - du copie la formule sans les crochets { } - tu la colles dans la barre de formule et le raccourci pour mettre en matricielle est Ctrl+Maj+Enter
Cordialement
C'est un fichier que j'ai trouvé sur un autre forum en guise d'explication et l'ai testé. J'ai également utilisé la formule sur un autre fichier sans macro mais je n'y parviens toujours pas.
Quand je sélectionne la plage ( plage identique à celle de la colonne nom ( D_RANG_1 ) ou sont les valeurs ) et que je colle la formule et applique la matrice il y a que la première cellule de la colonne matrice qui affiche la première valeur de l'autre colonne. Toutes les autre cellules de la colonne matrice sont vide mais la formule INDEX y est pourtant...
Je comprends pas...je vais encore essayer.
Quand je sélectionne la plage ( plage identique à celle de la colonne nom ( D_RANG_1 ) ou sont les valeurs ) et que je colle la formule et applique la matrice il y a que la première cellule de la colonne matrice qui affiche la première valeur de l'autre colonne. Toutes les autre cellules de la colonne matrice sont vide mais la formule INDEX y est pourtant...
Je comprends pas...je vais encore essayer.
Bonjour,
Il faut sélectionner la colonne où tu dois mettre la formule.
Pour aller au plus simple ; je reprend les données de la question initiale tes résultats de formules sont en AGN891:AGN1890. C'est la zone souche
Alors tu sélectionnes la zone AGU891:AGU1890 ; AGU891 étant la cellule active de la sélection, dans la barre de formule tu colles la formule en remplaçant "champ" soit par $AGN$891:$AGN$1890, soit par le nom que tu auras donné à ta zone souche, en l'occurrence et si j'ai bien compris " D_RANG_1 ". Ensuite tu fais Ctrl+Maj+Enter
J'ai fait un autre exemple avec les colonnes indiquées ci-dessus,
https://www.cjoint.com/c/KIxewh0v7Ze
Un autre détail que je viens de voir - la formule =SI(AGL891="D";AGL891;"") qui est dans la question initiale ne peut pas donné un résultat chiffré mais la lettre "D" ou rien.
Tu as certainement été trop vite en écrivant la question. Il vaut mieux faire un copier/coller pour reproduire une formule.
Cordialement
Il faut sélectionner la colonne où tu dois mettre la formule.
Pour aller au plus simple ; je reprend les données de la question initiale tes résultats de formules sont en AGN891:AGN1890. C'est la zone souche
Alors tu sélectionnes la zone AGU891:AGU1890 ; AGU891 étant la cellule active de la sélection, dans la barre de formule tu colles la formule en remplaçant "champ" soit par $AGN$891:$AGN$1890, soit par le nom que tu auras donné à ta zone souche, en l'occurrence et si j'ai bien compris " D_RANG_1 ". Ensuite tu fais Ctrl+Maj+Enter
=SIERREUR(INDEX(D_RANG_1;PETITE.VALEUR(SI(ESTNA(EQUIV(D_RANG_1;D_RANG_1;0));"";EQUIV(D_RANG_1;D_RANG_1;0));LIGNE(INDIRECT("1:"&LIGNES(D_RANG_1)))));"")
J'ai fait un autre exemple avec les colonnes indiquées ci-dessus,
https://www.cjoint.com/c/KIxewh0v7Ze
Un autre détail que je viens de voir - la formule =SI(AGL891="D";AGL891;"") qui est dans la question initiale ne peut pas donné un résultat chiffré mais la lettre "D" ou rien.
Tu as certainement été trop vite en écrivant la question. Il vaut mieux faire un copier/coller pour reproduire une formule.
Cordialement
Bonjour papyLuc51 !
En effet j'ai fait une faute de frappe avec =SI(AGL891="D";AGL891;"") je désoler pour la confusion que ça aurait pu engendrer. La bonne formule renvoie bien vers une autre cellule comme ici =SI(AGL891="D";AGB891;"").
J'ai passer quelques heures à essayer d'identifier le problème et je pense avoir omis un détail cruciale dans la source de mon problème et dont j'ignorais totalement l'importance.
Mes résultats dans la colonne D_RANG_1 ne sont pas des valeurs fixe mais provienne de source de valeurs ALEA() et donc en constant recalcul et c'est ce qui semble clairement poser problème.
J'ai adapté le fichier pour bien illustrée la situation, je pense que ca devient beaucoup plus claire.
https://www.cjoint.com/c/KIxkkQPjBQm
En effet j'ai fait une faute de frappe avec =SI(AGL891="D";AGL891;"") je désoler pour la confusion que ça aurait pu engendrer. La bonne formule renvoie bien vers une autre cellule comme ici =SI(AGL891="D";AGB891;"").
J'ai passer quelques heures à essayer d'identifier le problème et je pense avoir omis un détail cruciale dans la source de mon problème et dont j'ignorais totalement l'importance.
Mes résultats dans la colonne D_RANG_1 ne sont pas des valeurs fixe mais provienne de source de valeurs ALEA() et donc en constant recalcul et c'est ce qui semble clairement poser problème.
J'ai adapté le fichier pour bien illustrée la situation, je pense que ca devient beaucoup plus claire.
https://www.cjoint.com/c/KIxkkQPjBQm
RE:
Oui après coups j'ai bien remarqué que cette formule ne fonctionne pas pour regrouper en tête de colonne les cellules >0 lorsque celles-ci avaient un résultat provenant d'une fonction.
J'ai cherché sans succès sur la toile pour trouver une autre formule.
Je ne sais pas s'il ne va pas falloir passer par une macro.
Je vais quitté le navire et laisser aux intervenants plus qualifiés que moi pour corriger ce problème.
Avec ton nouveau fichier comportant toutes les données décrites il y matière pour être plus précis
Cordialement
Oui après coups j'ai bien remarqué que cette formule ne fonctionne pas pour regrouper en tête de colonne les cellules >0 lorsque celles-ci avaient un résultat provenant d'une fonction.
J'ai cherché sans succès sur la toile pour trouver une autre formule.
Je ne sais pas s'il ne va pas falloir passer par une macro.
Je vais quitté le navire et laisser aux intervenants plus qualifiés que moi pour corriger ce problème.
Avec ton nouveau fichier comportant toutes les données décrites il y matière pour être plus précis
Cordialement
Bonjour,
Sans avoir de solution je voudrais juste apporter ma vision.
La colonne D-RANG-3 contient des valeurs UNIQUEMENT décimales avec formules et conditions ;"") et la matrice D-RANG-3 compacte normalement et sans défaut MAIS dans le bas de la colonne.
Une cellule qui contient une formule qui renvoie un texte vide ("" "") n'est pas vide, donc les matricielles renvoient en premier, en début de colonne, tous les textes "vides".
Une solution avec une colonne auxiliaire est-elle envisageable?
Sans avoir de solution je voudrais juste apporter ma vision.
La colonne D-RANG-3 contient des valeurs UNIQUEMENT décimales avec formules et conditions ;"") et la matrice D-RANG-3 compacte normalement et sans défaut MAIS dans le bas de la colonne.
Une cellule qui contient une formule qui renvoie un texte vide ("" "") n'est pas vide, donc les matricielles renvoient en premier, en début de colonne, tous les textes "vides".
Une solution avec une colonne auxiliaire est-elle envisageable?
Bonjour tontong,
C'est noté je ne savait pas. Oui une colonne auxiliaire ou peu importe comme solution est envisageable mais c'est la colonne D-RANG-2 avec les nombres non décimales dont j'ai besoin et non la D-RANG-3. J'ai mis la D-RANG-3 pour illustré le problème qu'avec les décimales ca fonctionne hormis les cellules vides reprise dans le haut de la colonne mais visiblement normale comme vous l'avez mentionné.
C'est noté je ne savait pas. Oui une colonne auxiliaire ou peu importe comme solution est envisageable mais c'est la colonne D-RANG-2 avec les nombres non décimales dont j'ai besoin et non la D-RANG-3. J'ai mis la D-RANG-3 pour illustré le problème qu'avec les décimales ca fonctionne hormis les cellules vides reprise dans le haut de la colonne mais visiblement normale comme vous l'avez mentionné.
J'ai testé avec les si erreur en plus mais rien change, il y a toujours des case vides à cause des cellules avec formules et fonction "".
Je sais pas si ma manipulation pour mettre en matricielle est correcte, je sélectionne dans une autre colonne la plage identique à la plage champ, la plage étant toujours sélectionné dans la nouvelle colonne je fais ctrl V pour copier la formule qui se met dans la premier cellule, puis dans l'assistant fx j'active l'option matrice. Est-ce la bonne manipulation ?
ps : Mon problème n'est pas d'avoir des cases avec #valeur dans le bas de la liste, je pense qu'il manque une ou plusieurs condition à la formule. Celle-ci semble tenir compte des cases vides contenant une formule avec condition "" (vide ) comme des case pleines et les ajoutes à la liste compresser alors qu'elle devrait ignorer les cases vides. ( voir l'exemple du tableau du bas sous le titre liste plus compressée )