0
votes

Filtrer les cellules comme argument sur une fonction dans une formule

Je suis un programmeur, alors veuillez supporter avec moi. Je comprends que Excel n'est pas nécessairement ce que je suis habitué dans d'autres domaines, mais je craque ma tête ouverte sur la façon d'accomplir quelque chose qui semble quelque peu simple.

J'ai une colonne de chiffres qui sont eux-mêmes la base de une formule. Je veux filtrer ces cellules en fonction de certains critères et les transmettre à une autre fonction pour effectuer un calcul.

Je comprends que cela peut être fait avec "filtres" dans le sens Excel. Cela signifierait que je devrais cliquer plusieurs fois pour chaque calcul, filtrer les résultats, copier la valeur et coller l'endroit où j'en ai besoin. Si les données changent jamais, je devrai tout recommencer.

Ce que je cherche, c'est l'équivalent de filtrage dans un langage de programmation, voici un exemple: xxx

alors qu'est-ce que mon Excel est comme.

J'ai une colonne g, cela compte plus de 12 000 résultats, chacune de ces colonnes est comme celle-ci:

= (fr-bn) / bn

Celles-ci sont copiés, n signifie le numéro de ligne de 5 à 12 000 +

Maintenant, je voudrais créer une cellule, M2 de telle qu'elle contient :

= sous-total (1, [GN dans G5: G11: G112000 où gn> 0])

L'objectif est que je ne veux pas avoir à pointez et cliquez, car en fait, il y a beaucoup plus de cellules que je dois créer (environ 20) avec des types similaires de "filtre" prédicats.

Ce serait bien, autant que possible, si je ne fais pas non plus Il faut spécifier la plage N ... N-1 de la colonne, comme idéalement, cela peut changer. Pourrait être 10, pourrait être 20 000, ne devrait pas avoir d'importance.

La meilleure formule ou solution serait comme:

Sous-total (1, [GN dans G0: glorale où GN> SOMELL])

Tous les pointeurs ou suggestions où lire, ou une solution serait géniale. Je cherchais sur Google et il semble que je manque de bonne compréhension pour trouver la réponse dans le matériel présenté.

Aussi, veuillez m'excuser d'utiliser le programmeur parle, je sais que les formules Excel ne sont pas nécessairement 1: 1, je cherche juste un moyen de gagner du temps. Les réponses à VBA ou en utilisant des macros sont les bienvenues, la principale chose est de trouver un moyen de le faire ...

meilleur, Jason

Mise à jour

Je dois spécifier qu'il doit être un peu compatible à l'envers, je ne peux donc pas utiliser la fonction de filtrage uniquement disponible dans> = 365


0 commentaires

3 Réponses :


1
votes

Ceci est pour Excel 365, en utilisant des formules de feuille de calcul. Avec des données dans la colonne g à partir de g5 , dans une autre cellule entrée: xxx

 Entrez la description de l'image ici


1 commentaires

Je n'ai pas précisé que je ne crois pas avoir 365 sur les motifs que Excel dit que le filtre n'est pas valide.



1
votes

Que diriez-vous d'un tableau?

= somme (si (g: g> 0, g: g, ""))

Mettez le curseur dans 'Barre de fonction' avec formule. Ensuite, appuyez sur Ctrl + Shift + Entrée (dans cette commande tout en maintenant tout en le maintenant enfoncée. {} Apparaîtra autour de la formule.

Faites-moi savoir si une assistance supplémentaire est nécessaire.

mat


6 commentaires

Semble prometteur, mais pas de joie. Si j'utilise exactement, c'est presque raison, mais comprend les en-têtes et les cellules vides qui précèdent. Si je spécifie une plage, il affiche une erreur de valeur.


Je pense que je vais juste essayer de le faire avec VBA et injecter le calcul filtré dans une cellule.


Y compris l'en-tête ne devrait pas interférer. La plage spécifiée fonctionnera également. L'erreur de valorisation est probablement due à celle de ne pas être entrée en tant que tableau. Chaque fois que la formule est modifiée, il faut redro ctrl + Shift + Entrée


D'accord, je l'ai traversé à ce stade, et il semble corriger, mais retourne #value !, {= sous-total (1, if (g: g> 0, si (GRIX (G: G)> 5, G: g, 0), 0)}


De toute façon, cela conduit toujours à une erreur de valeur, mais cela aurait pu faire avec l'utilisation de sous-total (1,) au lieu de somme, la somme est probablement moins finky ...?


Pas sûr si le sous-total / agrégat fonctionnera avec la fonction de tableau. REGARDE La formule sous-total ci-dessus est la moyenne de la moyenne. Si tel est le cas, je suggérerais = moyenne (si (g: g> 0, g: g, ""))



1
votes

Je ne suis pas du tout sûr que vos tentatives d'économie de temps en parlant en langage de programmation au lieu de l'anglais permettent vraiment d'économiser de la durée ou de l'espace. Mon meilleur effort détermine que vous nous avez tous confus. S'il vous plaît dites-moi pourquoi la formule simple ci-dessous ne fonctionne pas.

=AVERAGEIF(HourlyReadings, ">"&A1,HourlyReadings)


2 commentaires

Bonjour, parce que je décrivais quelque chose que je fais comme un programmeur tout le temps, que je ne sais pas comment faire dans Excell. Je vais essayer vos exemples et voir comment ils fonctionnent. Ils ont l'air très prometteurs.


Impressionnant, c'est précisément ce dont j'avais besoin et a expliqué beaucoup de la pensée des utilisateurs de tableur.