en utilisant une formule de tableau dans la plage (E11: E16) selon l'exemple ci-dessus:
Pour compter les clients uniques dans la plage (E2: E7) qui répondent uniquement aux critères suivants:
1- Produit acheté 1, indépendamment du fait qu'ils aient acheté d'autres produits ou non
2- Acheté moins de 5 unités après somme. s'il y a des clients répétés
3- Leurs codes de zones correspondent au code correspondant dans la plage (D11: D16)
I Utilisez la formule suivante pour figurer dans E11:
=SUM(IF(FREQUENCY(IF($G$2:$G$7=D11,IF($I$2:$I$7="Product1",IF($J$2:$J$7<5,IF($E$2:$E$7<>"",MATCH($E$2:$E$7,$E$2:$E$7,0))))),ROW($E$2:$E$7)-ROW(G2)+1),1))
Cette formule fonctionne très bien. En même temps, lorsqu’on l’utilise dans une très grande base de données contenant des tonnes de lignes et de colonnes, excel prend environ 3 minutes pour calculer une seule cellule, ce qui est terrible pour continuer ainsi.
Est-il possible de convertir cette formule matricielle en une formule régulière ... toute aide sera appréciée au maximum ... Merci d'avance
la source
Réponses:
Je voudrais utiliser Power Query pour cela. Power Query est un complément gratuit de Microsoft pour Excel 2010 et 2013, intégré à Excel 2016 dans le ruban de données, sous Obtenir & amp; Transformer.
Je ne suis pas sûr de votre définition des "tonnes", mais Power Query s'étend assez facilement jusqu'à 10 millions de lignes d'entrée. Si votre source de données est en réalité une base de données (par exemple, SQL Server, Oracle, etc.), Power Query transfère le plus de travail possible à la base de données.
Pour votre défi, je commencerais par créer une requête en utilisant le De table bouton pour lire à partir de la 1ère table, et choisissez Fermer et charger / fermer et charger à , Alors choisi Seulement créer une connexion . Si vos données source proviennent en réalité d'une base de données réelle ou d'un autre fichier, il sera plus efficace de diriger directement Power Query vers cette source.
Ensuite, je lancerais la requête de sortie à partir de la liste des indicatifs régionaux de la plage D11: D16, en utilisant le De table bouton.
J'ajouterais une étape de fusion pour rejoindre la 1ère requête d'indicatif régional, puis développer toutes ses colonnes.
Puis j'ajouterais un Colonne conditionnelle appelé Produit 1 en spécifiant: si (colonne) Produit est égal à (valeur) Produit 1 alors (colonne) Produit
Puis j'ajouterais un Par groupe étape, regroupement sur Indicatif régional et Client et agrégeant les Somme des ventes et Max de produit 1 .
Ensuite, je filtrer le Produit 1 colonne uniquement les lignes avec la valeur "Produit 1", puis filtrez la Ventes colonne à moins de 5.
Enfin je voudrais un autre Par groupe étape, regroupement sur Indicatif régional et agréger les valeurs par défaut Compter .
Par défaut, Power Query livrera cette information dans une nouvelle table sur un nouveau classeur. Il est probablement préférable de la laisser pour éviter les conflits avec d'autres objets.
Lorsque vos données source changent, actualisez simplement la requête pour régénérer la table en sortie.
la source