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

XL 2019 Améliorer le temps de recalcul

st007

XLDnaute Barbatruc
Bonjour,
Ce morceau de fichier fonctionne selon mes besoins, puisque réduit à 20 lignes.
Or le fichier complet évolue chaque semaine et comporte désormais 2000 lignes environs par onglet steam,diesel,electrique, maglev et hyperloop
j'ai donc en feuil6 2000 formules matricielle avec la fonction indirect pour "selectionner" l"onglet de recherche ainsi que le "player" de référence en fonction de A1, B1, C1
Le but est de lister les loco dont le "player"(b1) "Need"(c1) et afficher les "player" les possédant marqué "Own"
ou en choisissant Own en C1 d'afficher les loco que le player en B1 "own" et de lister les joueurs les ayant marquer "need"

Et le soucis est devenu le temps de recalcul, avec power query, le temps de calcul est similaire et tourne aux allentours des 15 secondes. Du moins de la manière dont j'ai opéré.
Rien de vital donc, mais un point de vue extérieur me permettrais sans doutes d'évoluer, en formule, en query, ou en vba

Merci d'avance du temps consacré à mon sujet
 

Pièces jointes

  • Locos forum.xlsm
    134.3 KB · Affichages: 19

st007

XLDnaute Barbatruc
Re St, Job,
J'ai enfin compris la philosophie.
Une V3. Si Need on les les Own. Si Own on liste les Need.
Par contre je ne sais pas quoi faire des Collected.
Mais au moins ça avance.
C'est tout à fait çà . Les collected sont celles que j'ai reçues mais que je ne suis pas en mesure d'envoyer.
Le principe serait le même pour une collection de carte marvel du leclerc ou Auchan, les Panini pour le foot.
Le but est de tout avoir . On a des doubles ("Own"), on peut en recevoir ("collected") , et en manquer (need)
Il est donc intéressant de savoir qui recherche tes doubles (c1 own)
et qui possède en double celle qu'il te manque (need)

Ta collection est terminée quand tu les a toutes collected et/ou own (les own sont alors des doubles)
 

st007

XLDnaute Barbatruc
la manièré dont tu pose les critères , j'en étais loin ...
pour ma compréhension, la ligne résultat =, dans le vrai fichier, les players sont indiqués "1 Prénom nom", "2 prenom nom", etc Comment dois-je modifier ?

VB:
let
    Source = Excel.CurrentWorkbook(),
    Critere = Source{[Name = "Criteres"]}[Content]{0}[Column3],
    Tableau = "Tableau" & Source{[Name = "Criteres"]}[Content]{0}[Column1],
    Player = Source{[Name = "Criteres"]}[Content]{0}[Column2],
    Datas = Source{[Name=Tableau]}[Content],
    Résultat = Table.SelectRows(Datas, each Text.StartsWith(Record.Field(_,Player), Critere)),
    Personnalisé1 = Table.SelectColumns(Résultat,{"REC","LOCO"} & List.Select(Table.ColumnNames(Résultat),each Text.StartsWith(_,"Player"))),
    #"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(Personnalisé1, {"REC", "LOCO"}, "Player", "Valeur"),
    #"Lignes filtrées1" = Table.SelectRows(#"Supprimer le tableau croisé dynamique des autres colonnes", each ( Text.Trim([Valeur])= "Need")),
    #"Lignes groupées" = Table.Group(#"Lignes filtrées1", {"LOCO", "Valeur"}, {{"Nombre", each Table.RowCount(_), Int64.Type}, {"Qui", each _[Player]}}),
    #"Valeurs extraites" = Table.TransformColumns(#"Lignes groupées", {"Qui", each Text.Combine(List.Transform(_, Text.From), "; "), type text}),
    #"Colonnes supprimées" = Table.RemoveColumns(#"Valeurs extraites",{"Valeur", "Nombre"})
in
    #"Colonnes supprimées"
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

dans le vrai fichier, les players sont indiqués "1 Prénom nom", "2 prenom nom", etc Comment dois-je modifier

Avec les fonctions de liste appliquée à la liste des noms de colonnes.
Ci-dessous quelques exemples.
Si dans vos tableaux les noms de joueurs sont toujours après les N premières colonne vous pouvez utilisez List.Range
Vous pouvez également les sélectionner par exclusions des autres colonnes avec List.Différence
Il est aussi possible d'employer une fonction personnelle en deuxième paramètre de List.Select (voir dernier exemple) pour ne retenir que les noms de colonnes préfixés (ou suffixés) par un nombre (suivi d'une espace).
Et on peut inventer encore une foule de possibilités.

Testé sur le tableau "TableauDiesel"
Fonctions de liste :
 

Discussions similaires

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