Подсчет ячеек в именованном диапазоне без VBA

у меня непересекающийся набор из 9 ячеек:А1,В3,С5,Д-7,Е11,От F13,G17,Н19,I23. Я назначил имя в этих клетках: MyPicks



у меня есть простая формула, чтобы выбрать значение в одной из этих клеток в случайном порядке:

=SMALL(MyPicks,RANDBETWEEN(1,9))

формула работает:

enter image description here

однако каждый раз, когда я изменяю количество клеток в Именованный Диапазон, Я должен вернуться и изменить the 9 в Формуле! Поэтому я решил" исправить " формулу:

первый вариант:

=SMALL(MyPicks,RANDBETWEEN(1,COUNTA(MyPicks)))

это, казалось, работать. Однако COUNTA () подсчитывает только ячейки со значениями или null. Он игнорирует полностью пустые ячейки. Так...........

вторая попытка:

=SMALL(MyPicks,RANDBETWEEN(1,COUNTA(MyPicks)+COUNTBLANK(MyPicks)))

к сожалению, это производит значение#! ошибка потому что COUNTBLANK () не работает на непересекающихся диапазона. Так............

третья попытка:

Я создал небольшой VBA UDF:

Public Function nCount(r As Range) As Long
    nCount = r.Count
End Function

использование этого UDF решило проблему. Затем я обнаружил, что мой клиент был макрофбическим, и решение было мгновенно отклонено.

можно ли подсчитать общее количество клеток в Именованный Диапазон без VBA ??

28
задан Gary's Student
27.12.2022 7:27 Количество просмотров материала 2784
Распечатать страницу

2 ответа

как насчет этой маленькой красотки:

=SUM(FREQUENCY(MyPicks,MyPicks))

таким образом, вся формула будет такой:

=SMALL(MyPicks,RANDBETWEEN(1,SUM(FREQUENCY(MyPicks,MyPicks))))

изменить: как указал Барри Гудини,SMALL функция возвращает только числовые значения. В этом случае SUM(FREQUENCY()) решение-это перебор. Вместо этого просто используйте

=SMALL(MyPicks,RANDBETWEEN(1,COUNT(MyPicks)))
2
отвечен Engineer Toast 2022-12-28 15:15

Если каждый из непересекающихся диапазонов состоит из одной ячейки, следующая формула вернет количество ячеек в диапазоне, независимо от содержимого, или даже если они пустые, что я думаю, что вы хотите:

=LEN(CELL("address",MyPicks))-LEN(SUBSTITUTE(CELL("address",MyPicks),",",""))+1
1
отвечен Ron Rosenfeld 2022-12-28 17:32

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх