SI à plusieurs conditions dont cellule vide ou non vide

Résolu
Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023 - 30 nov. 2023 à 17:37
Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023 - 6 déc. 2023 à 16:04

Bonjour,

Je suis un peu embêté, car j'aimerais trouvé une formule SI qui me permettrait de référer à plusieurs onglets pour automatiser la comptabilisation des réponses dans un tableau.

Ex. J'aimerais qu'il puisse prendre les données de l'onglet21EDM et les mettre à la suite MAIS que si une cellule est vide passer à l'onglet suivant.

J'imagine que je dois combiner un SI(RechercheV) avec un SI(ESTVIDE...

mais je m'y connais peu en SI à multiples conditions.

Dans la cellule en vert, j'ai essayé ceci =SI(ESTVIDE('21 EDM'!B17);'21 EDL'!B17;'21 EDM'!B17).

C'était un point de départ, mais...

Est-ce faisable et comment?  Merci à l'avance de résoudre ce défi.

A voir également:

7 réponses

Raymond PENTIER Messages postés 58397 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 avril 2024 17 094
1 déc. 2023 à 01:09

Bonjour.

Comme tu le sais https://forums.commentcamarche.net/forum/affich-32271058-si-recherchev-et-ou#1 on ne peut pas travailler sans le fichier !

Une simple image ne suffit pas !

 1) Aller dans https://www.cjoint.com/
 2) Cliquer sur [Parcourir] pour sélectionner le fichier (15 Mo maxi)
 3) Défiler vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
 4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; faire un clic-droit dessus et choisir "Copier le lien"
 5) Revenir dans la discussion sur CCM, et dans votre message faire "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

Il existe aussi https://www.transfernow.net/


0
Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023 1
1 déc. 2023 à 14:59

Désolé, il y avait longtemps que je n'avais pas écrit.

Voici le lien : https://www.cjoint.com/c/MLbn5caszvw

0
bigoudiii Messages postés 222 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 18 avril 2024 77
1 déc. 2023 à 15:47

Hello,

Dans un premier temps essaie :

=SI('21 EDM'!B14<>"";'21 EDM'!B14;SI('21 EDL'!B14<>"";'21 EDL'!B14;SI('21RDP'!B14<>"";'21RDP'!B14;"")))
0
yclik Messages postés 3595 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 26 avril 2024 1 481
1 déc. 2023 à 17:48

bonsoir

si une seule cellule de chaque ligne de tableau est remplie alors tester

='21 EDM'!B14&'21 EDL'!B14&'21 RDP'!B14

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023 1
4 déc. 2023 à 15:40

Bonjour,

=SI('21 EDM'!B14<>"";'21 EDM'!B14;SI('21 EDL'!B14<>"";'21 EDL'!B14;SI('21RDP'!B14<>"";'21RDP'!B14;"")))

Mon problème est plus complexe. Cette formule pourrait peut-être fonctionner si je devais traiter une ligne à la fois, mais ce n'est pas le cas. alors je vais reformuler. Je vais simplifier.

Imaginons que le contenu de mes onglets c'est :

21 EDM 

  • B14 = M1; B15=M2; B16=M3, etc.

21 EDL

  • B14= L1; B15=L2; B16=L3, etc. Idem pour 21RDP

Il faut que : 

  1. S'il n'y a aucune données en B14 pour chaque onglet, il cherche dans B15 pour trouver la prochaine donnée disponible dans le tableau.
  2. chaque ligne de l'onglet 21 puisse aller chercher la donnée disponible suivante
  • ex. : Si dans 21EDM il y a rien dans B14, que 21 EDL a 2 lignes de données et que RDP a 3 lignes de données, je veux que l'onglet 21 puisse aller chercher les 5 lignes... 
  • que B14 affiche la 1ere ligne de EDL (b14), que B15 affiche la 2e EDL; que B17 à B19 affiche les 3 lignes de données de RDP.

Selon mon exemple, mon onglet 21 devrait me donner comme résultat :

  • B14 : L1
  • B15 : L2
  • B16 : R1
  • B17 : R2
  • B18 : R3

C'est pourquoi dans mon 1er post je parlais d'un mix avec recherchev possible...Je ne sais même pas si c'est faisable.

Espérant le tout plus clair.

0
bigoudiii Messages postés 222 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 18 avril 2024 77
4 déc. 2023 à 18:44

Hello,

Quelle est ta version d'Excel ?

0
Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023 1
5 déc. 2023 à 16:55

d'Office 365

0
bigoudiii Messages postés 222 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 18 avril 2024 77 > Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023
5 déc. 2023 à 16:59

hello,

alors essaie en B14 :

=LET(t;ASSEMB.V('21 EDM'!B14:B24;'21 EDL'!B14:B24;'21 RDP'!B14:B24);FILTRE(t;t<>0))

sinon, précise les différents cas possibles

1
Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023 1 > bigoudiii Messages postés 222 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 18 avril 2024
5 déc. 2023 à 17:51

Je vais faire plus de tests, mais pour l'instant c'est super! En du moins c'est faisable!  Merci! Je vous reviens!

0
Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023 1 > bigoudiii Messages postés 222 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 18 avril 2024
5 déc. 2023 à 20:36

Cela marche très bien!

J'aimerais donc vous poser la question suivante : que représente t dans votre formule? (pour ma compréhension personnelle).

Merci à l'avance!

0
bigoudiii Messages postés 222 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 18 avril 2024 77 > Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023
6 déc. 2023 à 08:34

Hello,

On reprends depuis le début, le principe j'assemble dans un même tableau vertical tes trois plages de données avec :

ASSEMB.V('21 EDM'!B14:B24;'21 EDL'!B14:B24;'21 RDP'!B14:B24)

tu peux déjà dans une cellule faire pour voir ce que cela donne :

=ASSEMB.V('21 EDM'!B14:B24;'21 EDL'!B14:B24;'21 RDP'!B14:B24)

Ensuite avec la fonction FILTRE, je filtre ce tableau en ne prenant que les valeurs différentes de 0, cela donnerait :

FILTRE(ASSEMB.V('21 EDM'!B14:B24;'21 EDL'!B14:B24;'21 RDP'!B14:B24); ASSEMB.V('21 EDM'!B14:B24;'21 EDL'!B14:B24;'21 RDP'!B14:B24)<>0)

La fonction LET permet de nommer une plage ou une formule afin de simplifier et d'optimiser l'écriture de la formule souhaitée.

Donc je nomme t (on peut prendre ce que l'on veut), le tableau vertical créé avec :

LET(t;ASSEMB.V('21 EDM'!B14:B24;'21 EDL'!B14:B24;'21 RDP'!B14:B24); ...

et ensuite je filtre ce tableau t en ne prenant que les valeurs différentes de 0 avec :

FILTRE(t;t<>0)

Ce qui donne au final une formule unique et dynamique :

=LET(t;ASSEMB.V('21 EDM'!B14:B24;'21 EDL'!B14:B24;'21 RDP'!B14:B24);FILTRE(t;t<>0))

Ces nouvelles fonctions 365 sont impressionnantes, mais valables uniquement pour Excel 365.

1
Happy79_2 Messages postés 73 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 6 décembre 2023 1
6 déc. 2023 à 16:04

Très formateur Merci!  

0