[Résolu] deux conditions avec recherchev
Modérateur : Vilains modOOs
Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
-
- NOOuvel adepte
- Messages : 24
- Inscription : 12 avr. 2018 14:21
[Résolu] deux conditions avec recherchev
Bonjour,
je dois préparer un fichier pour un publipostage et je me frotte à une complication.
C'est une liste de noms et de prénoms.
les noms sont dans une colonne et les prénoms dans une autre.
J'ai attribué à chaque enfant (il s'agit d'enfants) un créneau horaire. Donc 3 colonnes prénoms / nom / créneaux.
J'ai une seconde feuille qui à toutes les informations pour le publipostage à laquelle je souhaite ajouter le créneau horaire de chaque enfant. Mais comme il y a des fratries je ne peux faire une recherche sur la colonne nom, il y a aussi des prénoms identique donc pas possible de faire la recherche par prénom. Il faute les 2!
Je pensais que: =SI($B2:$C2=";";RECHERCHEV($B2:$C2;$Feuille3.A1:B123;3;0)) fonctionnerait. Et non!
feuille 3
Colonne A= noms
Colonne B = prénoms
Le 3 = colonne D qui est la colonne des créneau.
Merci de votre aide
je dois préparer un fichier pour un publipostage et je me frotte à une complication.
C'est une liste de noms et de prénoms.
les noms sont dans une colonne et les prénoms dans une autre.
J'ai attribué à chaque enfant (il s'agit d'enfants) un créneau horaire. Donc 3 colonnes prénoms / nom / créneaux.
J'ai une seconde feuille qui à toutes les informations pour le publipostage à laquelle je souhaite ajouter le créneau horaire de chaque enfant. Mais comme il y a des fratries je ne peux faire une recherche sur la colonne nom, il y a aussi des prénoms identique donc pas possible de faire la recherche par prénom. Il faute les 2!
Je pensais que: =SI($B2:$C2=";";RECHERCHEV($B2:$C2;$Feuille3.A1:B123;3;0)) fonctionnerait. Et non!
feuille 3
Colonne A= noms
Colonne B = prénoms
Le 3 = colonne D qui est la colonne des créneau.
Merci de votre aide
Dernière modification par Open newbie le 01 juil. 2019 13:10, modifié 1 fois.
windows server 2008 R2 standard / 64bit
libre office 5.4
libre office 5.4
-
- HédOOniste
- Messages : 1667
- Inscription : 15 déc. 2010 08:33
Re: deux conditions avec recherchev
Bonjour
il faudrait créer en feuille 3 une nouvelle colonne "Nom Prénom" en Colonne A avec :
et la fonction RECHERCHEV deviendrait
il faudrait créer en feuille 3 une nouvelle colonne "Nom Prénom" en Colonne A avec :
Code : Tout sélectionner
=B2&" "&C2
Code : Tout sélectionner
RECHERCHEV(B2&" "&C2;$Feuille3.A1:E123;4;0)
OpenOffice 4.1.14 sous Windows 10
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: deux conditions avec recherchev
Bonsoir,
Outre la solution d'yclick (que je salue au passage !), on peut aussi envisager des solutions matricielles, qui permettent d'éviter la colonne supplémentaire.
Dans le fichier joint, sur la feuille Publipostage, en G2 : La feuille ListeNoms recense les créneaux en fonction des noms et prénoms, $ListeNoms.A$2:A$11&$ListeNoms.B$2:B$11 créent une matrice colonne NomPrénom, exploitée par EQUIV() pour trouver la bonne ligne, celle correspondant à A2&B2, le NomPrénom en cours, ce n° de ligne étant envoyé à INDEX() pour retourner le bon créneau.
La formule se valide par Ctrl+Maj+Entrée. Cette formule est donc matricielle en entrée mais unitaire en sortie (une seule cellule après validation). Pour la recopier vers le bas :C'est une formule matricielle en entrée et en sortie, la validation conduisant à remplir toutes les cellules H2:H11. C'est un peu plus rapide, mais la maintenance est plus délicate, notamment au cas où la liste se rallonge...
Mon sentiment est qu'en règle générale, la solution par colonne supplémentaire est la plus simple à mettre en oeuvre, sauf au cas où d'autres formules seraient sensibles au décalage, dans un tableau complexe déjà élaboré.
Cordialement,
Jean-Louis
Outre la solution d'yclick (que je salue au passage !), on peut aussi envisager des solutions matricielles, qui permettent d'éviter la colonne supplémentaire.
Dans le fichier joint, sur la feuille Publipostage, en G2 :
Code : Tout sélectionner
=INDEX(ListeNoms.C$2:C$11;EQUIV(A2&B2;$ListeNoms.A$2:A$11&$ListeNoms.B$2:B$11;0))
La formule se valide par Ctrl+Maj+Entrée. Cette formule est donc matricielle en entrée mais unitaire en sortie (une seule cellule après validation). Pour la recopier vers le bas :
- il suffit de positionner la souris dans le coin inférieur droit de la cellule : le curseur se transforme en croix (+), puis, il faut cliquer/glisser vers le bas tout en appuyant simultanément sur la touche Ctrl ;
- une autre manière de faire est de copier la cellule initiale (Ctrl+C), puis de sélectionner la plage des cellules qui doivent contenir la même formule, puis de coller (Ctrl+V).
Code : Tout sélectionner
=INDEX(ListeNoms.C$2:C$11;EQUIV(A$2:A$11&B$2:B$11;$ListeNoms.A$2:A$11&$ListeNoms.B$2:B$11;0))
Mon sentiment est qu'en règle générale, la solution par colonne supplémentaire est la plus simple à mettre en oeuvre, sauf au cas où d'autres formules seraient sensibles au décalage, dans un tableau complexe déjà élaboré.
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- NOOuvel adepte
- Messages : 24
- Inscription : 12 avr. 2018 14:21
Re: deux conditions avec recherchev
Bonjour yclick et Jean-Louis,
merci d'avoir pris le temps de me proposer des solutions.
J'essaye de voir ce que ça peut donner dans mon tableau et vous fait un retour. (avant il faut que j'ingère et digère la proposition de Jean-Louis )
Pour information j'ai 198 enfants inscrits et 9 créneaux différents...
@ très vite!
merci d'avoir pris le temps de me proposer des solutions.
J'essaye de voir ce que ça peut donner dans mon tableau et vous fait un retour. (avant il faut que j'ingère et digère la proposition de Jean-Louis )
Pour information j'ai 198 enfants inscrits et 9 créneaux différents...
@ très vite!
windows server 2008 R2 standard / 64bit
libre office 5.4
libre office 5.4
-
- NOOuvel adepte
- Messages : 24
- Inscription : 12 avr. 2018 14:21
Re: deux conditions avec recherchev
Finlamement j'ai prix la version :
Elle est superbe cette solution, et en plus je l'ai compris et je peux la réutiliser dans d'autres projets.
Merci
Code : Tout sélectionner
=INDEX($Originale.D$2:$Originale.D$198;EQUIV(C10&D10;$Originale.B$2:$Originale.B$198&$Originale.C$2:$Originale.C$198;0))
Merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Open newbie le 04 juil. 2019 14:42, modifié 1 fois.
windows server 2008 R2 standard / 64bit
libre office 5.4
libre office 5.4
-
- ManitOOu
- Messages : 3454
- Inscription : 12 janv. 2006 10:04
Re: [Résolu] deux conditions avec recherchev
Bonjour à tous,
Comme il s'agit ici de réaliser un publipostage, il est donc nécessaire d'avoir un fichier odb.
Pourquoi alors ne pas faire une requête dans le fichier odb et utiliser celle-ci pour le publipostage ? (je sais, on ne se trouve plus alors dans le Tableur, mais dans Base)
Comme il s'agit ici de réaliser un publipostage, il est donc nécessaire d'avoir un fichier odb.
Pourquoi alors ne pas faire une requête dans le fichier odb et utiliser celle-ci pour le publipostage ? (je sais, on ne se trouve plus alors dans le Tableur, mais dans Base)
AOo 4.1.15 et LibO 7.6.6.3 (x64) - Windows 10 Famille 22H2 (19045.3693) 64 bits
-
- NOOuvel adepte
- Messages : 24
- Inscription : 12 avr. 2018 14:21
Re: [Résolu] deux conditions avec recherchev
Michel JANZEF a écrit :Bonjour à tous,
Comme il s'agit ici de réaliser un publipostage, il est donc nécessaire d'avoir un fichier odb.
Pourquoi alors ne pas faire une requête dans le fichier odb et utiliser celle-ci pour le publipostage ? (je sais, on ne se trouve plus alors dans le Tableur, mais dans Base)
Bonjour,
Merci de ta participation, mais deux choses:
- c'est quoi base...
- mon responsable informatique m'empêche de faire un mailing postage car "cette fonctionnalité présentant un risque de sécurité important" (Dans le texte) ! Je ne sais pas d'où il sort ça, mais bon, cela m'a coincé!
Du coup j'ai du procéder autrement et la formule Jean-Louis Cadeillan m'a particulièrement aidé!
windows server 2008 R2 standard / 64bit
libre office 5.4
libre office 5.4
-
- ManitOOu
- Messages : 3454
- Inscription : 12 janv. 2006 10:04
Re: [Résolu] deux conditions avec recherchev
Bonsoir,
Je vous conseille de lire le tutoriel Publipostage avec Calc
user.services.openoffice.org/fr/forum/download/file.php?id=38525
Le lien avec la source de données (votre classeur Calc) et la lettre type (votre fichier Writer) se fait par l’intermédiaire du module Base.Open newbie a écrit :... c'est quoi base...
Je vous conseille de lire le tutoriel Publipostage avec Calc
user.services.openoffice.org/fr/forum/download/file.php?id=38525
AOo 4.1.15 et LibO 7.6.6.3 (x64) - Windows 10 Famille 22H2 (19045.3693) 64 bits
-
- NOOuvel adepte
- Messages : 24
- Inscription : 12 avr. 2018 14:21
Re: [Résolu] deux conditions avec recherchev
Je vais regarder ça.
Ce que je voulais faire au départ c'est un mailing personnalisé en publipostage.
Je sais faire le publipostage avec Calc et Writer, mais je voulais qu'il parte par mail et non en impression papier, ou en pj a mettre à chaque mail (il y en avait de 198 mails).
Ce que je voulais faire au départ c'est un mailing personnalisé en publipostage.
Je sais faire le publipostage avec Calc et Writer, mais je voulais qu'il parte par mail et non en impression papier, ou en pj a mettre à chaque mail (il y en avait de 198 mails).
windows server 2008 R2 standard / 64bit
libre office 5.4
libre office 5.4