Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 (Résolu) Formule matricielle

msingle

XLDnaute Occasionnel
La formule suivante =INDEX(Tableau;EQUIV("*"&B$9&"*";INDEX(Tableau;;6);0);{1;3;4;5}) fonctionne parfaitement. Cependant, elle ne renseigne que la première occurrence de B9.
Je cherche donc une formule matricielle que me trouverait toutes les occurrences de B9 et me renverrait les données des colonnes 1,3,4 et 5.
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Peut-être un début avec Power Query
Après modification du tableau de l'onglet "Infos" il faut actualiser le tableau de l'onglet "Recap".

JHA
 

Pièces jointes

  • Test (22).xlsx
    25.3 KB · Affichages: 2

msingle

XLDnaute Occasionnel
Bonjour,

Merci, cela marche parfaitement.

Deux questions cependant :

1/ Comment actualiser l'onglet "Recap" après modification de l'onglet "Infos".

2/ Comment puis-je intégrer cela dans mon vrai fichier?

Marc
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Autrement, tu cliques droit dans le tableau "vert" et actualiser.

Je ne sais pas comment est ficelé le tableau de ton "vrai" fichier mais le code Power Query est le suivant
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    #"Type modifié" = Table.TransformColumnTypes(Source,{{"Début", type time}, {"Fin", type time}, {"Durée", type time}, {"X", Int64.Type}, {"Y", Int64.Type}, {"LUNDI", type text}, {"MARDI", type text}, {"MERCREDI ", type text}, {"JEUDI", type text}, {"VENDREDI", type text}}),
    #"Lignes filtrées" = Table.SelectRows(#"Type modifié", each ([Début] <> null)),
    #"Tableau croisé dynamique des colonnes supprimé" = Table.UnpivotOtherColumns(#"Lignes filtrées", {"Début", "Fin", "Durée", "X", "Y"}, "Attribut", "Valeur"),
    #"Fractionner la colonne par délimiteur" = Table.SplitColumn(#"Tableau croisé dynamique des colonnes supprimé", "Valeur", Splitter.SplitTextByDelimiter(" - ", QuoteStyle.Csv), {"Valeur.1", "Valeur.2"}),
    #"Type modifié1" = Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur",{{"Valeur.1", type text}, {"Valeur.2", type text}}),
    #"Tableau croisé dynamique des colonnes supprimé1" = Table.UnpivotOtherColumns(#"Type modifié1", {"Début", "Fin", "Durée", "X", "Y", "Attribut"}, "Attribut.1", "Valeur"),
    #"Colonnes supprimées" = Table.RemoveColumns(#"Tableau croisé dynamique des colonnes supprimé1",{"Attribut.1"}),
    #"Colonnes renommées" = Table.RenameColumns(#"Colonnes supprimées",{{"Attribut", "JourSemaine"}, {"Valeur", "Noms"}}),
    #"Fractionner la colonne par délimiteur1" = Table.SplitColumn(#"Colonnes renommées", "Noms", Splitter.SplitTextByDelimiter("(", QuoteStyle.Csv), {"Noms.1", "Noms.2"}),
    #"Type modifié2" = Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur1",{{"Noms.1", type text}, {"Noms.2", type text}}),
    #"Colonnes supprimées1" = Table.RemoveColumns(#"Type modifié2",{"Noms.2"}),
    #"Duplication de la colonne" = Table.DuplicateColumn(#"Colonnes supprimées1", "JourSemaine", "JourSemaine - Copier"),
    #"Type modifié avec paramètres régionaux" = Table.TransformColumnTypes(#"Duplication de la colonne", {{"JourSemaine - Copier", type text}}, "fr-FR"),
    #"Colonne conditionnelle ajoutée" = Table.AddColumn(#"Type modifié avec paramètres régionaux", "Personnalisé", each if [#"JourSemaine - Copier"] = "LUNDI" then 1 else if [#"JourSemaine - Copier"] = "MARDI" then 2 else if [#"JourSemaine - Copier"] = "MERCREDI " then 3 else if [#"JourSemaine - Copier"] = "JEUDI" then 4 else if [#"JourSemaine - Copier"] = "VENDREDI" then 5 else if [#"JourSemaine - Copier"] = "SAMEDI" then 6 else if [#"JourSemaine - Copier"] = "DIMANCHE" then 7 else null, type number),
    #"Lignes triées" = Table.Sort(#"Colonne conditionnelle ajoutée",{{"Personnalisé", Order.Ascending}}),
    #"Colonnes supprimées2" = Table.RemoveColumns(#"Lignes triées",{"JourSemaine - Copier"}),
    #"Colonnes renommées1" = Table.RenameColumns(#"Colonnes supprimées2",{{"Personnalisé", "Jour"}}),
    #"Colonnes permutées" = Table.ReorderColumns(#"Colonnes renommées1",{"Noms.1", "JourSemaine", "Jour", "Début", "Fin", "Durée", "X", "Y"}),
    #"Colonnes renommées2" = Table.RenameColumns(#"Colonnes permutées",{{"Noms.1", "Noms"}})
in
    #"Colonnes renommées2"

Il y a certainement plus simple mais je ne suis pas un grand spécialiste de Power Query

JHA
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…