IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [Numbers] Créer une liste récapitulative à partir de cases à cocher, (avec en bonus une formule… pour écrire des formules !)
Options
baron
posté 13 Jun 2021, 00:38
Message #1


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 353
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Bonjour,

J'ai un tableau dont les 10 premières colonnes contiennent des prénoms comme en-tête, et chacune des rangées suivantes (correspondant à des dates) avec des cases à cocher (en fonction de la présence ou non de chacun).

J'aimerais obtenir dans la 11e colonne une chaîne de caractères reprenant uniquement les prénoms des personnes dont la case a été cochée, séparés par une virgule et une espace.

Exemple :
Code
Paul Théo Anna (etc.)
X    X    X             Paul, Théo, Anna
X         X             Paul, Anna
     X    X             Théo, Anna

J'arrive à peu près à mes fins avec une bête fonction =SI (A2 ; A$1 & ", " ; "") & SI (B2 ; B$1 & ", " ; "") etc. mais pour dix colonnes, c'est long et surtout peu élégant.

En plus, j'aimerais reproduire cette formule dans d'autres tableaux et devoir chaque fois modifier les références de toutes ces cellules est fastidieux.
Pensez-vous qu'il soit possible de faire plus simple ?

(Accessoirement, quand j'arrive au dernier item de ma liste, il est suivi d'une virgule superflue. Ce serait chouette si ce n'était plus le cas mais en soi, ce n'est pas bien grave…)


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
Phil J. Fry
posté 13 Jun 2021, 04:39
Message #2


The Original Martian & DBCM
*****

Groupe : Modérateurs
Messages : 6 552
Inscrit : 25 May 2004
Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns
Membre no 19 190



Je ferais de la façon suivante: (mais ça dépend du nombre de dates à gérer)
Je créerais un tableau auxiliaire en dessous avec pour formule de base
=SI(A2="X";A$1&", ";"")
Une colonne résultat brut avec pour formule de base
=A10&B10&C10&D10&E10&F10&G10&H10&I10&J10
Une colonne résultat sans virgule avec pour formule de base
=STXT(K10;1;NBCAR(K10)-2;)
avec un message d'erreur si personne n'est sélectionné
Ça fait trois formules "simples" à copier-coller

ed:pour 12 personnes, ça ressemble à ça :
Fichier joint  Capture_d___e__cran_2021_06_13_a___06.19.46.png ( 185.97 Ko ) Nombre de téléchargements : 27

Je peux t'envoyer par mail le fichier.


--------------------
MBP 16" Sonoma 14.4.1 MBA 13" Sonoma 14.4.1 MacBook Air 11" 10.9.5 MacBook 2Ghz 1Go X.6.4 blanc Mac Mini 1.25Ghz 1Go X.4.10 Spatule de 10,5 cm iPod shuffle 512 iPod mini 4GB iPod Nano 16GB
DBCM III Disciple du MSV Team BOINC Macbidouille
But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok
La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D
Go to the top of the page
 
+Quote Post
baron
posté 13 Jun 2021, 11:49
Message #3


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 353
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Merci pour ta réponse. smile.gif

J'ai beaucoup de dates, donc ce ne sera pas nécessairement très commode mais je testerai quand même tout à l'heure toutes ces formules (là je dois m'absenter…)
La 3e me semble en tout cas très bien, et simple comme j'aime. thumb.gif

Je veux bien une copie de ton tableau (tu connais mon adresse @macbid) mais comme je suis toujours avec un vieil iWorks '09, je crois qu'un export Excel (Horresco referens !) sera sans doute plus pratique pour la compatibilité. wacko.gif


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
Phil J. Fry
posté 13 Jun 2021, 16:01
Message #4


The Original Martian & DBCM
*****

Groupe : Modérateurs
Messages : 6 552
Inscrit : 25 May 2004
Lieu : sɹɐɯ ⅋ ʞɹoʎ ʍǝu ʍǝu ⅋ ǝssᴉns
Membre no 19 190



J'ai envoyé un mail.
C'est dommage que l'on ne puisse pas mettre en pièce jointe un fichier numbers en pièce jointe dans le forum. Tout le monde pourrait en profiter.


--------------------
MBP 16" Sonoma 14.4.1 MBA 13" Sonoma 14.4.1 MacBook Air 11" 10.9.5 MacBook 2Ghz 1Go X.6.4 blanc Mac Mini 1.25Ghz 1Go X.4.10 Spatule de 10,5 cm iPod shuffle 512 iPod mini 4GB iPod Nano 16GB
DBCM III Disciple du MSV Team BOINC Macbidouille
But I'm a creep, I'm a weirdo - What the hell am I doin here? - I don't belong here Radiohead
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes - S'il n'y a pas de solution, c'est qu'il n'y a pas de problème - Devises Shadok
La connaissance, c'est savoir que la tomate est un fruit. La sagesse, c'est savoir qu'il ne faut pas la mettre dans une salade de fruit. B O'D
Go to the top of the page
 
+Quote Post
Zeltron54
posté 13 Jun 2021, 20:40
Message #5


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonjour,

Baron jap.gif

En complément à la réponse de Phil
Tu peux simplement ajouter des colonnes intermédiaires (à masquer) qui feront le boulot.
voir copie d'écran.
les formules de la ligne 2 qui seront à tirer vers le bas sont
En C2 --> =SI(b$2=VRAI;$B$1&", ";"")
en E2 --> =SI(D$2=VRAI;$D$1&", ";"")
en G2 --> =SI(F$2=VRAI;$F$1&", ";"")

ainsi de suite....

La recap données brutes
en H2 --> =C2&E2&G2

Le résultat final
en I2 --> =SI(NBCAR(H$2)=0;"";STXT(H$2;1;NBCAR(H$2)-2))


Ligne 2 à continuer avec le nombre de noms
La colonne I2 sera la seule à laisser visible.

Fichier joint  Capture_d___e__cran_2021_06_13_a___21.25.51.png ( 102.78 Ko ) Nombre de téléchargements : 21


Ce message a été modifié par Zeltron54 - 13 Jun 2021, 20:47.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
baron
posté 15 Jun 2021, 01:48
Message #6


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 353
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Zeltron54
Phil J. Fry, j'ai bien reçu ton mail. wink.gif
Un tout grand merci à tous les deux. jap.gif Vos réponses m'ont fait grand plaisir.

Désolé de ne pas avoir répondu de suite mais je voulais tester (enfin, surtout comprendre…) vos propositions de manière suffisamment approfondie, et je n'ai pas toujours beaucoup de temps pour mes petites affaires perso. mellow.gif
Dans le fond, vos deux solutions se rejoignent fort et font en tout cas le job demandé.

Je suis parfaitement heureux de la fonction STXT(H$2;1;NBCAR(H$2)-2) thumb.gif — qui reprend tous les caractères de la chaîne en H2, moins les deux derniers — ainsi que du traitement d'erreur que vous y avez ajouté en cas de chaîne vide :
Proposition de Zeltron : SI(NBCAR(H$2)=0;""; …)
Proposition de Phil J. Fry : SI(EXACT(AA2;"");"* personne *"; …)

Pour le reste, j'avais eu l'espoir qu'il puisse exister une formule plus ramassée que la mienne mais malheureusement, de toute évidence, on n'échappe pas à la longue répétition des items =SI (A2; A$1 & ", "; "") autant de fois qu'il y a de personnes, que ce soit dans une longue formule unique comme j'imaginais ou réparti dans plusieurs colonnes dont le résultat est ensuite concaténé.
— Tant qu'à faire, je préfère la proposition de Phil J. Fry de grouper toutes les colonnes auxiliaires en un bloc à droite du tableau plutôt que de les intercaler : ça me semble plus simple si je veux les masquer d'un geste, ou pour étendre la recopie.

De même, il faut aussi énumérer manuellement tous les items résultants à concaténer : =O2&P2&Q2&R2&S2&T2&U2&V2&W2&X2&Y2&Z2.
Rien d'insurmontable mais c'est fastidieux quand je veux réutiliser cela dans plusieurs tableaux et que les lettres référant aux colonnes ne sont pas les mêmes.

Du coup, j'avais réfléchi de mon côté à la possibilité de faire un petit tableau auxiliaire qui me servirait de générateur de formule, puisqu'en fait il y a juste des lettres à incrémenter :
  • Dans les deux premières cellules d'une colonne [B3:B4 dans l'exemple ci-dessous], je tapais deux lettres (correspondant aux références des deux premières colonnes avec les prénoms) et j'étendais vers le bas, pour avoir une liste alphabétique ;
  • Dans la colonne suivante [C3:C13], je déclarais une chaîne = "=le début de ma formule" & $B3 & "la suite de ma formule &" — à recopier aussi vers le bas, dans le but de créer le motif répétitif sans devoir chaque fois juste changer une lettre ;
  • Tout en bas de ce tableau auxiliaire [C14], concaténer le tout pour avoir une seule longue formule (OK, là de toute manière, je me tape une longue litanie mais une et une seule fois…) ;
  • Grâce à votre exemple, enlever le dernier opérateur [C15].

Fichier joint  Capture_d___e__cran_2021_06_15_a___02.30.56.png ( 131.85 Ko ) Nombre de téléchargements : 9

Ensuite, il me resterait à copier la chaîne résultante et à la coller comme valeur dans le tableau où je veux l'utiliser comme formule.

Ça s'annonçait bien… sauf que dans ma formule finale, j'ai besoin d'utiliser des guillemets doubles pour déclarer des éléments de chaîne. Et ça, ça semble impossible ! wacko.gif
J'ai tenté de mettre le guillemet entre guillemets, d'utiliser la fonction CAR avec le code Unicode correspondant ou d'échapper le guillemet avec un tilde (comme on fait pour les caractères joker qu'on veut utiliser pour ce qu'ils sont) : pas moyen [colonne D]. sad.gif

Résultat des courses, comme tout ceci doit s'intercaler dans un tableau-maître déjà bien grand et que je ne souhaite pas y ajouter de nouvelles colonnes (ça débalance d'autres tableaux qui font référence à celui auquel je travaille), je vais en créer un x-ième tableau-miroir et y ajouter les colonnes nécessaires comme vous me le suggérez, en écrivant patiemment toutes les formules.
Tant pis pour l'automatisme de remplissage…

+++++++++++

Citation (Phil J. Fry @ 13 Jun 2021, 17:01) *
C'est dommage que l'on ne puisse pas mettre en pièce jointe un fichier numbers en pièce jointe dans le forum. Tout le monde pourrait en profiter.

Je crois que si on l'enregistre d'abord en .zip (clic-droit dans le Finder > Compresser), ça passera. wink.gif
Je me permets de joindre le fichier que tu m'as envoyé pour tester (je l'ai réenregistré afin de masquer ton adresse mail et j'y ai joint mon essai de tableau générateur de formules).
Fichier joint  Test_re__cap_pre__sences_avec_cases_a___cocher___Phil_et_baron.numbers09.numbers.zip ( 110.11 Ko ) Nombre de téléchargements : 3


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
baron
posté 15 Jun 2021, 03:13
Message #7


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 353
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Citation (baron @ 15 Jun 2021, 02:48) *
[…] j'avais réfléchi de mon côté à la possibilité de faire un petit tableau auxiliaire qui me servirait de générateur de formule, puisqu'en fait il y a juste des lettres à incrémenter :
[…]
Ensuite, il me resterait à copier la chaîne résultante et à la coller comme valeur dans le tableau où je veux l'utiliser comme formule.

Ça s'annonçait bien… sauf que dans ma formule finale, j'ai besoin d'utiliser des guillemets doubles pour déclarer des éléments de chaîne. Et ça, ça semble impossible ! wacko.gif

J'ai trouvé !

Puisque Numbers ne veut pas que j'utilise de guillemets doubles dans une formule, je les ai sortis de ma formule.

Je fais trois colonnes de travail :
  • Une première [C3:C13] qui contient le début de la formule, avec les lettres qui changent = " SI(" & $B3 & "3; " & $B3 & "$1", ce qui me donne SI(A3; A$1
  • Une autre [D3:D13], au format de cellule > texte (là est l'astuce), avec les caractères voulus ensuite dans la formule, dont les fameux guillemets &", " ; "")
  • Une dernière [E3:E13] qui concatène les deux premières (lorsque la première n'est pas vide) =SI(C3="";"";C3 & D3 & " &"), ce qui me donne la formule complète SI(A3; A$1&", " ; "") suivie d'un opérateur de concaténation & que j'enlèverai tout à la fin après le dernier item [E15].

    Fichier joint  Capture_d___e__cran_2021_06_15_a___04.15.30.png ( 114.47 Ko ) Nombre de téléchargements : 15
  • Il me reste à l'étendre vers le bas pour avoir la lettre qui change pour chaque élément de formule, et hop ! je peux créer en une opération une formule super longue mais qui prendra une seule colonne dans mon tableau de présences et dont je peux changer à volonté la plage de lettres de références.

Dans ma ligne de bas de tableau, j'ai évidemment dû — comme prévu — indiquer une fois toutes les cellules à concaténer mais ensuite, tout est automatique et je ne dois plus le refaire, quel que soit le tableau auquel je destine ma formule.

smile.gif

Encore une fois, merci pour votre aide et votre soutien. Je n'aurais jamais trouvé ça tout seul ! sleep.gif


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
baron
posté 3 Mar 2023, 19:39
Message #8


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 353
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Citation (baron @ 15 Jun 2021, 01:48) *
De même, il faut aussi énumérer manuellement tous les items résultants à concaténer : =O2&P2&Q2&R2&S2&T2&U2&V2&W2&X2&Y2&Z2.
Rien d'insurmontable mais c'est fastidieux quand je veux réutiliser cela dans plusieurs tableaux et que les lettres référant aux colonnes ne sont pas les mêmes.

Citation (baron @ 15 Jun 2021, 03:13) *
Dans ma ligne de bas de tableau, j'ai évidemment dû — comme prévu — indiquer une fois toutes les cellules à concaténer […]

Ça, c'était parce que j'utilisais iWork '09.
Avec Monterey, il y a une nouvelle commande CONCAT qui est plus tolérante :
Elle admet des intervalles de cellules, à la différence de CONCATÉNER ou & qui n'acceptent que les cellules simples, qu'il faut donc toutes énumérer.​
Comparer ces trois formules équivalentes :​
= CONCAT (O2:Z2)​
= O2 & P2 & Q2 & R2 & S2 & T2 & U2 & V2 & W2 & X2 & Y2 & Z2
= CONCATENER (O2 ; P2 ; Q2 ; R2 ; S2 ; T2 ; U2 ; V2 ; W2 ; X2 ; Y2 ; Z2)​
— Inconvénient, CONCAT n'est pas compatible avec Excel ni iWorks '09.​


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 25th April 2024 - 08:57