Décalage avec INDEX & EQUIV et la fonction "" ( vide )
Résolu/Fermé
A voir également:
- Excel decaler equiv
- Liste déroulante excel - Guide
- Si et excel - Guide
- Décaler colonne excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
4 réponses
PapyLuc51
Messages postés
4373
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
14 septembre 2024
1 435
22 sept. 2021 à 15:43
22 sept. 2021 à 15:43
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
PapyLuc51
Messages postés
4373
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
14 septembre 2024
1 435
22 sept. 2021 à 18:09
22 sept. 2021 à 18:09
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.
PapyLuc51
Messages postés
4373
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
14 septembre 2024
1 435
>
KingKong
Modifié le 23 sept. 2021 à 06:35
Modifié le 23 sept. 2021 à 06:35
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
KingKong
>
PapyLuc51
Messages postés
4373
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
14 septembre 2024
23 sept. 2021 à 12:21
23 sept. 2021 à 12:21
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
PapyLuc51
Messages postés
4373
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
14 septembre 2024
1 435
>
KingKong
23 sept. 2021 à 13:46
23 sept. 2021 à 13:46
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
KingKong
>
PapyLuc51
Messages postés
4373
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
14 septembre 2024
23 sept. 2021 à 15:42
23 sept. 2021 à 15:42
Oui c'est pas évident, j'ai essayer plusieurs alternative mais en vain. En tout cas merci pour votre temps et participation PapyLuc !
tontong
Messages postés
2556
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
5 septembre 2024
1 057
23 sept. 2021 à 15:00
23 sept. 2021 à 15:00
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é.
tontong
Messages postés
2556
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
5 septembre 2024
1 057
>
KingKong
23 sept. 2021 à 17:31
23 sept. 2021 à 17:31
Regardez si cela convient:
https://www.cjoint.com/c/KIxpCP0F01K
https://www.cjoint.com/c/KIxpCP0F01K
KingKong
>
tontong
Messages postés
2556
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
5 septembre 2024
23 sept. 2021 à 18:05
23 sept. 2021 à 18:05
Et tout ca sans matricielle ! Encore mieux !
On peut envoyer que 1 merci à la fois mais je vous en envoie mille tontong !
Je vais examiner de plus près votre formule et méthode et en tirer connaissance.
On peut envoyer que 1 merci à la fois mais je vous en envoie mille tontong !
Je vais examiner de plus près votre formule et méthode et en tirer connaissance.
tontong
Messages postés
2556
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
5 septembre 2024
1 057
>
KingKong
24 sept. 2021 à 14:55
24 sept. 2021 à 14:55
Bonjour,
La formule qui numérote les valeurs retenues est du style =SI(A2<>"";MAX($B$1:B1)+1;0).
Il suffit de l'adapter pour exclure les doublons, ou les vides, ou les textes, etc. La méthode, moins lourde que les matricielles, est aussi plus souple.
La formule qui numérote les valeurs retenues est du style =SI(A2<>"";MAX($B$1:B1)+1;0).
Il suffit de l'adapter pour exclure les doublons, ou les vides, ou les textes, etc. La méthode, moins lourde que les matricielles, est aussi plus souple.
KingKong
>
tontong
Messages postés
2556
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
5 septembre 2024
24 sept. 2021 à 20:25
24 sept. 2021 à 20:25
Bonsoir tontong, c''est bien noté. En effet le fait quel soit pas matricielle m'arrange énormément car j'avais pas mal de colonne est étant donner que le fichier est déjà bien chargé je m'en saurais bien passer : )
Bonne soirée et encore merci !
Bonne soirée et encore merci !
Modifié le 22 sept. 2021 à 17:08
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 )