Mam rozłączny zestaw 9 komórek: A1, B3, C5, D7, E11, F13, G17, H19, I23 . Przypisałem nazwę do tych komórek: MyPicks
Mam prostą formułę, aby losowo wybrać wartość w jednej z tych komórek:
=SMALL(MyPicks,RANDBETWEEN(1,9))
formuła działa:
Jednak za każdym razem, gdy zmieniam liczbę komórek w zakresie nazwanym , muszę wracać i zmieniać 9 w formule! Postanowiłem więc „naprawić” formułę:
Pierwsza próba:
=SMALL(MyPicks,RANDBETWEEN(1,COUNTA(MyPicks)))
To wydawało się działać. Jednak COUNTA () liczy tylko komórki z wartościami lub wartościami NULL. Ignoruje całkowicie puste komórki. Więc...........
Druga próba:
=SMALL(MyPicks,RANDBETWEEN(1,COUNTA(MyPicks)+COUNTBLANK(MyPicks)))
Niestety powoduje to # WARTOŚĆ! błąd, ponieważ COUNTBLANK () nie działa w rozłącznych zakresach. Więc............
Trzecia próba:
Stworzyłem mały VBA UDF:
Public Function nCount(r As Range) As Long
nCount = r.Count
End Function
Korzystanie z tego UDF rozwiązało problem. Potem odkryłem, że mój klient jest makrofobiczny i rozwiązanie zostało natychmiast odrzucone.
Czy można policzyć całkowitą liczbę komórek w zakresie nazwanym bez VBA?
SMALL
funkcja może zwrócić błąd, ponieważ RANDBETWEEN
może zwrócić liczbę większą niż liczba liczb w MyPicks