Przekształć wieloetapową sumę wartości logicznych w jedną formułę


10

Mam kilka odczytów czujnika i sprawdzam, czy wartości mieszczą się w dopuszczalnym zakresie.

Aby to zrobić, używam IFdo sprawdzenia, czy wartości są >lub <obliczona (średnia) wartość. Wyniki są przechowywane w odpowiednich kolumnach. Na koniec sumuję wyniki, aby uzyskać liczbę, która jest poza zakresem (tj. Powyżej średniej).

Na przykład Axjest porównywany z Mean. Axdostać albo 1czy 0w If value is outside accepted bounds. Ax:

Zdjęcie 1

Następnie suma If value is outside accepted bounds. Axjest wykonywane, aby uzyskać Number of values outside bound. Ax:

Zdjęcie 2, podsumowanie

Pytanie
Jak przekonwertować to na jedną formułę?

Odpowiedzi:


11

Poszukiwana funkcja to COUNTIF():

Zrzut ekranu z arkusza roboczego

Wprowadź następującą formułę G3i ctrl-enter / copy-paste / fill-right w G3:I3:

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

COUNTIF() sprawdza każdą wartość w pierwszym argumencie pod kątem kryteriów w drugiej, i zlicza liczbę jej spełnienia.


Korzystanie COUNTIF()jest najprostszym i najlepszym rozwiązaniem.

Oczywiście możesz użyć bardziej skomplikowanej / trudniejszej do zrozumienia formuły takiej jak

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

lub tablica wprowadzona jako podobna

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

lub nawet bardziej niepotrzebnie skomplikowaną wersję.

Nie można jednak skorzystać z żadnej z tych w tym konkretnym przypadku.


Jeśli faktem jest, że wydaje się, że jesteś zainteresowany zmniejszeniem liczby kolumn pomocniczych, jeszcze lepszym rozwiązaniem ogólnym byłoby zrezygnowanie z kolumn średnich pomocniczych:

Zrzut ekranu z arkusza roboczego

Wprowadź następującą formułę D3i ctrl-enter / copy-paste / fill-right w D3:F3:

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

(I tak, ta formuła może być trudniejsza do zrozumienia dla początkującego przez konwersję na =SUMPRODUCT(--(A3:A8>AVERAGE(A3:A8)))lub {=SUM(--(A3:A8>AVERAGE(A3:A8)))}.)


@AFH Dzięki za edycję (i głosowanie ;-)). Zastanawiam się, jak to się stało? A co ważniejsze, jak tego nie zauważyłem ¯ \ _ (ツ) _ / ¯
robinCTS

Gratulacje. Boty systemowe wybierają wysoko ocenione posty do wykorzystania jako audyty w kolejce przeglądu LQP. Ten został wybrany jako post „niskiej jakości” - odznaka honorowa. :-)
fixer1234

@ fixer1234 Och, oczywiście (-‸ლ) Podaję trzy alternatywne rozwiązania problemu Y, a następnie dostarczam rozwiązanie problemu X. A na dodatek wyjaśnię, jak COUNTIF()działa ta funkcja. Oczywiście ta odpowiedź jest niskiej jakości! Następnym razem po prostu pozostanę przy jednej linii, kod tylko odpowiedzieć. (PS Właśnie sprawdziłem oś czasu . Wygląda na to, że nie Looks OK
zaliczyłeś

2

Funkcja SUMPRODUCT może również rozwiązać Twój problem.

wprowadź opis zdjęcia tutaj

Napisz ten wzór w G102 i wypełnij go od G102 do I102:

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

Uwaga: Dostosuj adres komórki w formule zgodnie z potrzebami.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.