Compter le nombre de cellule identique et synthétisé dans une seule cellule

Bonjour,

Je suis à la recherche d’une formule me permettant de compter le nombre de cellule qui a le même texte dans un tableau. Je connais la formule =NB.SI mais ce n’est pas vraiment ce que je recherche. Pour me faire mieux comprendre j’ai fait une capture d’écran d’un exemple.

Dans la ligne B2:F2 j’ai des allergie ou des restriction alimentaire, mon but est d’avoir via une formule un résultat se rapprochant du résultat de la cellule B8. J’arrive a avoir toutes les donnée dans une seul cellule a l’aide de la fonction =CONCAT(B2:F2) mais je cherche qu’il m’indique une seul fois chaque texte avec le nombre de fois ou il est présent (comme dans la cellule B8). Pour compliqué l’ensemble je n’ai pas de liste d’allergie donnée donc je peu pas utilisé la fonction =NB.SI(B2:F2;"texte de l’allergie").

Une idée ?

capture d ecran 2023 04 21 135735

Edit Modo : sujet excel et non Calc (utilisé pour Libreoffice). FIl déplacé sur le bon forum

Bonjour Winni,

une suggestion En Cellule A8 et B8 puis en étendant les formules vers le bas :

=B2
=NB.SI(B2:F2;"Vegan") & " Vegan - " & NB.SI(B2:F2;"Vege") & " Vege - etc ..."

en remplaçant bien sûr "etc ..." par les autres types d'allergie.

QQ remarques :

ce codage 'en dur' n'est pas très pratique. La formule devra être modifiée à chaque ajout de type d'allergie. De plus la formule risque d'être très longue.

Il serait intéressant de choisir le type d'allergie (végan ...) à partir d'une liste déroulante

Un codage en VBA serait plus adapté.

Bonne continuation

Je viens de voir votre précision

je n’ai pas de liste d’allergie donnée

Donc ma formule n'est pas applicable.

Tulipe propose une solution superbe de simplicité, je ne sais pas s'il y a des restrictions concernant la version d'excel.

Sa formule ne fonctionne pas sur ma version d'Excel (2016 FR) comme le montre le _xlfn avant les fonctions TEXTJOIN et UNIQUE

=_xlfn.TEXTJOIN(" ; ";0;_xlfn.UNIQUE(C2:I2;1;0)&" "&NB.SI(C2:I2;_xlfn.UNIQUE(C2:I2;1;0)))

bonjour

avec un fichier ,c'est mieux

cordialement

29winni.xlsx (10.84 Ko)

Bonjour à tous !

Si en plus tulipe_4 devient adepte de la modernité, il va devenir inarrêtable....

Bonjour à tous !

Si en plus tulipe_4 devient adepte de la modernité, il va devenir inarrêtable....

merci ; mais c'est un simple coup de bol expérimental , je n'aurais jamais cru la possibilité de Unique dans NB.si

Bonjour Tulipe,

comme je l'ai indiqué dans ma réponse à Winni, votre solution ne fonctionne pas sur ma version d'excel (2016 FR).

Vous confirmez une restriction où ces fonctions ne seraient disponibles que pour Excel 365 ?

Merci d'avance

Tulipe propose une solution superbe de simplicité, je ne sais pas s'il y a des restrictions concernant la version d'excel.

Sa formule ne fonctionne pas sur ma version d'Excel (2016 FR) comme le montre le _xlfn avant les fonctions TEXTJOIN et UNIQUE

=_xlfn.TEXTJOIN(" ; ";0;_xlfn.UNIQUE(C2:I2;1;0)&" "&NB.SI(C2:I2;_xlfn.UNIQUE(C2:I2;1;0)))

Bonjour Tulipe,

comme je l'ai indiqué dans ma réponse à Winni, votre solution ne fonctionne pas sur ma version d'excel (2016 FR).

Vous confirmez une restriction où ces fonctions ne seraient disponibles que pour Excel 365 ?

Merci d'avance

Tulipe propose une solution superbe de simplicité, je ne sais pas s'il y a des restrictions concernant la version d'excel.

Sa formule ne fonctionne pas sur ma version d'Excel (2016 FR) comme le montre le _xlfn avant les fonctions TEXTJOIN et UNIQUE

=_xlfn.TEXTJOIN(" ; ";0;_xlfn.UNIQUE(C2:I2;1;0)&" "&NB.SI(C2:I2;_xlfn.UNIQUE(C2:I2;1;0)))

en effet ; cette solution ne marche pas sans XL 365 ; pour le reste , cela est probablement jouable mais avec une matricielle de la mort

Je m'en doutais.

Un moyen pour Microsoft pour faire raquer ceux qui ont acheté une version d'Excel avant l'option d'abonnement d'Excel 365

re

donc avec ce qui ce faisait par le passé

14pour-clr.xlsx (12.29 Ko)

Merci Tulipe, de mon côté, j'avais une solution non matricielle (en pj) avec pour formule principale

=B5&SI(MAX(0;NB.SI(DECALER(ALLERGIES1;LIGNE(A6)-LIGNE(ALLERGIES1);0);A6)-NB.SI(ALLERGIES1;A6)+1)>0;NB.SI(ALLERGIES1;A6)&" "&A6&" - ";"")

où ALLERGIES1et ALLERGIES1 sont des plages nommées correspondant respectivement aux allergies des entreprises 1 et 2

Pour Winni, il faudrait s'il utilise ma solution, transposer la présentation de colonnes à lignes et adapter les formules en conséquence, et bien sûr pour rendre la présentation plus aisée, masquée les colonnes de travail et déplacer les résultats (en lignes B20 B21) vers des colonnes visibles.

Je continue à penser cependant, que, même si on peut dire qu'on a relevé le défi, il reste préférable de passer par du code VBA, plus adapté pour ce cas.

Hello à tous,

Ne connaissant pas la version utilisée,

Une petite proposition par PowerQuery qui ne casse pas trois pattes à un canard mais qui fonctionne également

@+

PS : @tulipe_4

Bonsoir à tous !

Pour le "fun", approche Power Query :

let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    Unpivot = Table.UnpivotOtherColumns(Source, {"Entreprise"}, "Attribut", "Valeur"),
    SplitCol = Table.ExpandListColumn(Table.TransformColumns(Unpivot, {{"Valeur", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv)}}), "Valeur"),
    GroupBy0 = Table.Group(SplitCol, {"Entreprise", "Valeur"}, {{"Nombre", each Text.From(Table.RowCount(_)) & " " & List.Max([Valeur])}}),
    GroupBy1 = Table.Group(GroupBy0, {"Entreprise"}, {{"Allergie", each Text.Combine([Nombre],", "), type text}})
in
    GroupBy1

Bonsoir à tous,

Un essai.......par macro,

7winni.xlsm (21.39 Ko)

Cordialement,

Un grand merci a tous :)
j'ai utilisé la formule proposé par tulipe_4 qui fonctionne sur mon ordinateur avec ma version de Excel, a vérifier si tout fonctionne avec la version de Excel que je dispose au travail.

Bonjour à tous !

j'ai utilisé la formule proposé par tulipe_4 qui fonctionne sur mon ordinateur avec ma version de Excel, a vérifier si tout fonctionne avec la version de Excel que je dispose au travail.

La nature de votre produit Excel ( 2013 ? 2016 ? 365 ? etc...) est une donnée importante à préciser dans votre profil.

Pour Winni,

si la solution de Tulipe ne fonctionne pas sur la version excel de votre travail, je pourrai vous faire passer ma solution en version Colonnes (et non Lignes), c'est à dire conforme à votre présentation.

Rechercher des sujets similaires à "compter nombre identique synthetise seule"