Пытаюсь сделать так:=СЧЁТЕСЛИ(A1:AF828;"_*") но не выходит.
_* - это фильтр моих именованных ячеек. Все имена у меня типа _0_ _1_ _253_ ....
_* - это фильтр моих именованных ячеек. Все имена у меня типа _0_ _1_ _253_ ....
24.12.2012 11:51:27
Пытаюсь сделать так:=СЧЁТЕСЛИ(A1:AF828;"_*") но не выходит.
_* - это фильтр моих именованных ячеек. Все имена у меня типа _0_ _1_ _253_ .... |
|
|
|
24.12.2012 12:02:54
А что вы подразумеваете под "именованными клетками"?
There is no knowledge that is not power
|
|
|
|
24.12.2012 12:06:41
Попробуйте так:
=СЧЁТЕСЛИ(A1:AF828;"_"&"*")
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
|
|
|
|
24.12.2012 12:24:31
Я так полагаю только через VBA(если это то, о чем я подумал). Что-то навроде такой вот пользовательской функции:
На листе в ячейку заносите: =Count_Names("_") Если хотите, чтобы имена просматривались исключительно с областью действия на листе с функцией: =Count_Names("_";ИСТИНА) или =Count_Names("_";1) Единственный обязательный аргумент - это префик имени, по которому ведется подсчет. Если указать =Count_Names("_П"), то будут подсчитаны все имена, которые начинаются с "_П". Если не знаете, как применять пользовательские функции:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|||
|
|
24.12.2012 12:25:04
Johny, Формулы -> Присвоить имя
Владимир, не получается. Выдает ноль |
|
|
|
24.12.2012 12:27:06
Владимир, я так посмотрел, запись =СЧЁТЕСЛИ(A1:A4;"_1_"), при условии что в этом диапазоне есть именованная клетка _1_ тоже дает ноль, и имя клетки не видит
|
|
|
|
24.12.2012 12:37:14
Лучше выкладывать пример.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
|
|
|
|
24.12.2012 12:39:12
Сергей Позняк, давайте придерживаться общепринятой терминологии: в Excel не клетка, а ячейка.
|
|
|
|
24.12.2012 12:39:19
А причём тут именованные диапазоны и СЧЁТЕСЛИ? :|
There is no knowledge that is not power
|
|
|
|
24.12.2012 13:37:35
Для им. диапазонов:
Изменено:
Я сам - дурнее всякого примера! ...
|
|||
|
|
24.12.2012 13:44:53
The_Prist, простите, не совсем внимательно прочел пост. просто сижу которую ночь подряд над работай, всплыли проблемы с именованными ячейками, которые почему то начали пропадать в рабочем файле, вот и понадобилась их как то подсчитать, чтобы видеть, если имена исчезают, и попробовать вычислить, из-за каких моих действий пропадают имена.
Если не затруднит, подскажите возможно ли и как сделать, чтобы это количество по вашей функции обновлялась сразу же, когда появляется новое имя или исчезает старое, а то сейчас изменяется только после перезапуска файла. F9 не помогает. Спасибо за помощь. |
|
|
|
24.12.2012 14:08:26
Добавьте в начало функции: Application.Volatile
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|
|
|
24.12.2012 15:02:33
The_Prist, спасибо
KuklP, вашу функцию тоже вставил, для всех имен. спасибо. только почему то ваша функция запоминает число имен из первого листа как я перехожу на второй лист. и только после того как что то ввожу в ячейку, число обновляется. Но при этом возвращаясь снова на первый лист, число берется из второго. Можно с этим что то сделать? Разобрался, можно просто =Count_Names("_") от The_Prist, вместо вашей функции.
Изменено: |
|
|
|
25.12.2012 11:05:54
The_Prist, если не затруднит, можно ли подправить ваш скрипт так, чтобы подсчет имен производился только при ручном запуске этой функции при нажатии кнопки или сочетании клавиш? Дело в том, что насчиталось у меня в книге 8130 имен, и это только где то 8-я часть от того, что будет. А из моего расчетного файла экселя обновляются большие трехмерные сборки в SolidWorks. А ваша функция в разы снизила производительность обновления - с двух минут ранее до 15 минут сейчас, даже при отсутствии Application.Volatile. Когда я добавлю все имена - мой комп ляжет. Спасибо в любом случае.
|
|
|
|
25.12.2012 11:49:18
Сергей Позняк, Вам не кажется, что Ваши нюансы проявляются как-то....слишком постепенно и нелогично. То надо чтоб обновлялось всегда, то не надо...То, что Вы хотите делается отдельной процедрурой, а не функцией. Приведенная процедура запишет имена в активную на момент запуска ячейку. Префикс и возможность просмотра только на активном листе регулируются константами: Const sPref As String = "_", bShOnly As Boolean = False
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|||
|
|
25.12.2012 17:17:40
The_Prist, спасибо. Только вот строка ActiveCell.Value = lCnt - красная и при запуске выскакивает ошибка syntax error.
По поводу нюансов - если бы я знал, что так будет тормозить работа эксель и Solidworks в связке, естественно сразу бы сказал то, к чему в итоге пришел, в ходе эксперимента. Естественно удобнее когда обновление количества происходит мгновенно, но если при этом падает резко производительность другой составляющей работы, приходится чем то жертвовать. |
|
|
|
25.12.2012 17:23:08
Удалите этот квадратик
Изменено: |
|
|
|
25.12.2012 17:30:24
sva, какой квадратик? Вы имеете ввиду всю эту строку? Так без нее вообще ничего не происходит при запуске.
|
|
|
|
25.12.2012 18:26:54
ActiveCell.Value = lCnt - должно быть без пробела. Это глюки форума. Просто перепишите эту строку в код без пробела.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|
|
|
25.12.2012 18:34:02
The_Prist, спасибо. работает. скорость работы возвращена ).
|
||||
|
|
|||