Fonction matricielle trop lourde

Salut a tous

je suis nul avec VBA, je cherche vos supports svp , j'ai une fonction matricielle trop lourde pour me donner une résultant ( elle dure de 2 heures meme plus sans toucher aucune bouton ), celle la fonction utilisé

=+LARGE(IF($B$2:$B$194634=B2;IF($A$2:$A$194634=A2;IF($I$2:$I$194634=I2;$C$2:$C$194634)));1)

comme montre en haut j ai des infinité des lignes , comment faire pour rendre cette formule en VBA svp.

chaque fois je dois nettoyer les lignes de A1:G1 et mettres de nouveaux les données mais sa aussi prends beaucoup de temps aussi que le copier coller de data dans cette zone que la fonction utilisé matricielle et les lignes dépasse 100000 lignes.

merci pour votre support d'avance.

12test.xlsx (30.69 Ko)

Bonjour @ tous,

Malheureusement que l’alternative n'existe que sur Office365 ou bien Excel2019,

=MAX.SI.ENS(C:C;A:A;A2;B:B;B2;I:I;I2)

Pourrais-tu nous dire c'est quoi la finalité de ce fichier de façon que l'on puisse voir si l'on peut te donner une autre solution plus simple.

Une âme charitable va surement passer par là pour te donner une fonction personnalisée que j'espère qu'elle soit plus rapide que dla formule matricielle.

Les SI() imbriquées ne servent à rien remplace les par des ()*()*().

Cordialement

Bonjour

merci pour votre réponse.

ce que je cherche a faire , c est que je fais une extraction du num maxi de Dlv.schedule envoyé par le clinet en fonction des critaires suivantes : customer number + Material +DLV Schedule + Week order , par example : le client ma envoyer 3 messages sur système durant la semaine 6 pour un produit A numéro suivants : 1 ( date 10-02 ) + 2 (date 11-02 ) et 3 ( date 12-02 ) , resltultat sera 3.

cette action sera faite par ligne de comparison .

j espere que j ai bien expliqué ma demande .

Merci.

Bonjour,

Une pivot table (you understand English I believe) "tableau croisé dynamique" ne serait pas plus pratique? Presque 200,000 lignes. Une formule sera lourde meme sous 365.

Resultat joint en attachement.

Observation numero 1: votre table va jusqu'a la derniere ligne, ceci n'est pas necessaire. Une table est dynamique, il suffit de copier coller as values et les formules s'appliqueront automatiquement.

File size de 30KB a 14.8 KB (15,234 bytes) en retirant les lignes vides puis deviens 20kb en ajoutant un TCD

Observation numero 2: si les donnees ne sont pas dynamique et ne varient pas (hyperlink?) alors pourquoi garder les formules actives?

Vous pourriez commencer votre table a la ligne 5.

Garder une copie des formules en lignes 2.

Ajouter vos donnees.

Appliquer les formules et copier coller as values.

La formule en colonne N peut etre retiree

la formule pour H "correct Qty" deviens

=IF(MAX(IF(([Customer]=[@Customer])*([Material]=[@Material])*([Week Order]=[@[Week Order]]),[Dlv.schedule]))=[@[Dlv.schedule]],[@[Order quantity]],0)
1

Bonjour à tous

Multipost : des réponses ailleurs...

Merci pour la manière le gérer avec TCD mais comment faire apparaitre seulement les valeurs " order quantity " pour les valeurs max seulement .

j'ai fais un example celle l image ci dessous. ce que je cherche que le TCD m 'affiche seulement le max dlc schedule par rapport Customer / Material / Order Week.

par example pour le produit F000134174 je veux voire seulement lignes en jaune puisque le max Dlv Schedule W08 c est numéro 5 et max Dlv Schedule 8 pour la semaine W09.

même chose pour les autres produits , comment faire ??

Merci.

result

Salut

DSl pour la confusion , celle le fichier excel avec même données , a la place de voire le max de Dlv Schedule je veux voire la quantitée par rapport au max de Dlv schedule.

Fichier en attache avec même données.

7maxtableau-1.xlsx (18.91 Ko)

Bonjour,

Multipost : Quelles réponses as-tu ?

On ne va réinventer la roue…

Cdlt.

dernière réponse par centonze.

j ai essayer avec TCD mais les valeurs ne sont pas juste

...par example pour le produit F000134174 je veux voire seulement lignes en jaune puisque le max Dlv Schedule W08 c est numéro 5 et max Dlv Schedule 8 pour la semaine W09.

Cet example utilise des informations differente de votre premier post... Un peu difficile de vous donner un feedback approprie.

je veux voire la quantitée par rapport au max de Dlv schedule.

Dans votre fichier, quelle colone retourne qty?

Remarque: Formule pour Correct Qty est differente et inclue celle de la colonne M

fichier joint

Merci a tous

c est résolu le problème.

Rechercher des sujets similaires à "fonction matricielle trop lourde"