Strona 1 z 1

Licz.jeżeli tylko na nieukrytych wierszach

: pt wrz 13, 2019 9:51 pm
autor: Kasia_16
Witam

Potrzebuję zastosować funkcję licz.jeżeli na kolumnie, jednak chciałabym wykonać ją tylko i wyłącznie na komórkach, które są widoczne.
Wcześniej stosuję autofiltr (na innej kolumnie).

Wiem, że istnieje funkcja sumy.częściowe, ale nie można jej użyć łącznie z funkcją licz.jeżeli.

Znalazłam rozwiązanie dla tego problemu w postaci makra, ale napisanego w vba:

Function CountIfVisible(MyRange As Range, Compare as Range) As Long

Dim c As Range
For Each c In MyRange
If (c.Value = Compare.Value) And (c.EntireRow.Hidden = False) Then
CountIfVisible = CountIfVisible + 1
End If
Next c

End Function

Czy ktoś mógłby powiedzieć mi w jaki sposób napisać takie makro w basicu?
Albo czy istnieje jakieś inne rozwiązanie mojego problemu?

Pozdrawiam
Kasia

Re: Licz.jeżeli tylko na nieukrytych wierszach

: sob wrz 14, 2019 4:02 pm
autor: Jermor
Proponuję zastosować funkcję LICZ.WARUNKI. Pozwala wskazać do 127 warunków jakie muszą zostać spełnione aby wartość została uwzględniona. Jeśli obliczana miałaby być ilość spełnionych warunków "Kryterium1" w zakresie A2:A1000 a jednocześnie ukryte są wiersze, które w obszarze B2:B1000 spełniają warunek "Kryterium2", to sama funkcja miałaby ogólną postać:
LICZ.WARUNKI(A2:A1000;kryterium1;B2:B1000;NIE(kryterium2))

Re: Licz.jeżeli tylko na nieukrytych wierszach

: sob wrz 14, 2019 4:20 pm
autor: Jermor
Nawiążę jeszcze do funkcji SUMY.CZĘŚCIOWE. Wyklucza ona zawsze z obliczeń wiersze ukryte z powodu zastosowanego filtrowania rekordów. To znaczy, że można dodać jeszcze jeden filtr, eliminujący wiersze niespełniające kryteriów niezbędnych w LICZ.JEŻELI a następnie wykorzystanie tejże w postaci: SUMY.CZĘŚCIOWE(3;zakres danych). W tej postaci funkcja oblicza ile jest niepustych komórek w odfiltrowanym zakresie. Pierwszy argument - 3 - decyduje o tym, że w obliczeniach będą brały udział wiersze, które zostały ukryte "ręcznie", argument w postaci 103 decyduje o tym, że ręcznie ukryte wiersze nie będą brały udziału w obliczeniach. Ale w twoim problemie to akurat nie odgrywa żadnej roli.