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

  • Initiateur de la discussion Initiateur de la discussion st007
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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)
 
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"
 
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 :
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

S
Réponses
1
Affichages
3 K
Sylvain
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…