Convertissez la somme des booléens en plusieurs étapes en une seule formule


10

J'ai quelques lectures de capteur et je vérifie si les valeurs sont dans la plage acceptable.

Pour ce faire, j'utilise un IFpour vérifier si les valeurs sont >ou <la valeur calculée (moyenne). Les résultats sont stockés dans les colonnes respectives. Enfin, je résume les résultats pour obtenir le nombre de personnes hors limites (c'est-à-dire supérieures à la moyenne).

Par exemple, Axest comparé à Mean. Axpour obtenir soit 1ou 0dans If value is outside accepted bounds. Ax:

Image 1

Puis la somme de If value is outside accepted bounds. Axest effectuée pour obtenir Number of values outside bound. Ax:

Image 2, sommation

Question
Comment puis-je convertir cela en une seule formule?

Réponses:


11

La fonction que vous recherchez est COUNTIF():

Capture d'écran de la feuille de travail

Entrez la formule suivante dans G3et ctrl-enter / copier-coller / remplir-droit dans G3:I3:

=COUNTIF(A3:A8,">"&D3)

COUNTIF() vérifie chaque valeur du premier argument par rapport aux critères du second et compte le nombre de fois où elle est satisfaite.


L'utilisation COUNTIF()est la solution la plus simple et la meilleure.

Bien sûr, vous pourriez utiliser une formule plus compliquée / plus difficile à comprendre comme

=SUMPRODUCT(--(A3:A8>D3))

ou un tableau entré comme

{=SUM(--(A3:A8>D3))}

ou même une version plus inutilement compliquée de ceux-ci.

Cependant, il n'y a aucun avantage à en tirer aucun dans ce cas particulier.


Si en fait, puisque vous semblez intéressé à réduire le nombre de colonnes d'assistance, une solution globale encore meilleure serait de se passer également des colonnes d'assistance moyennes:

Capture d'écran de la feuille de travail

Entrez la formule suivante dans D3et ctrl-enter / copier-coller / remplir-droit dans D3:F3:

=COUNTIF(A3:A8,">"&AVERAGE(A3:A8))

(Et oui, cette formule pourrait également être plus difficile à comprendre pour un débutant en la convertissant en =SUMPRODUCT(--(A3:A8>AVERAGE(A3:A8)))ou {=SUM(--(A3:A8>AVERAGE(A3:A8)))}.)


@AFH Merci pour la modification (et le vote positif ;-)). Je me demande comment ça s'est passé? Et plus important encore, comment je ne l'ai pas remarqué ¯ \ _ (ツ) _ / ¯
robinCTS

Félicitations. Les robots du système sélectionnent les publications hautement cotées à utiliser comme audits dans la file d'attente d'examen LQP. Celui-ci a été sélectionné comme un poste de "faible qualité" - un insigne d'honneur. :-)
fixer1234

@ fixer1234 Oh, bien sûr (-‸ლ) je donne trois solutions alternatives pour le problème Y puis je fournis une solution pour le problème X. Et en plus de cela, j'offre une explication du fonctionnement de la COUNTIF()fonction. De toute évidence, cette réponse est de faible qualité! La prochaine fois, je vais m'en tenir à une seule ligne, répondre uniquement au code. (PS Je viens de vérifier la chronologie . On dirait que vous avez échoué à l'audit - vous avez sélectionné Looks OK;-))
robinCTS

2

La fonction SUMPRODUCT peut également résoudre votre problème.

entrez la description de l'image ici

Écrivez cette formule dans G102 et remplissez-la directement de G102 à I102:

=SUMPRODUCT(--(A102:A107>D102:D107))

NB Ajustez l'adresse de la cellule dans la formule en fonction de vos besoins.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.