IPB

Bienvenue invité ( Connexion | Inscription )

> [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 : 20 002
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
 
Start new topic
Réponse(s)
baron
posté 15 Jun 2021, 01:48
Message #2


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 20 002
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 : 10

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 #3


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 20 002
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 #4


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 20 002
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

Les messages de ce sujet


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 : 18th July 2025 - 16:14