Страницы: 1
RSS
Ошибка вычислений #ЗНАЧ!
 
Привет всем!
Проблема в следующем.
1. Есть файлы реестров, лежащие в сетевом каталоге. 2. Есть файл статистики, который должен собирать данные из файлов реестров. Файл статистики собирает данные с помощью формул. Формулы вида:
Код
=СЧЁТЕСЛИ('[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*")

Код
=СЧЁТЕСЛИМН('[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*";'[01_Аппараты.xlsx]01.71'!$D$5:$D$467;"создана"&"*")

Код
=СЧЁТЕСЛИМН('[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*";'[01_Аппараты.xlsx]01.71'!$D$5:$D$467;D$5)


Так вот. Эти формулы работает, если открыт файл статистики и файл реестра ( в данном случае файл 01_Аппараты.xlsx). Если этот файл закрыт, то формулы принимают значения:
Код
=СЧЁТЕСЛИ('\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*")

Код
=СЧЁТЕСЛИМН('\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*";'\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$D$5:$D$467;"создана"&"*")

Код
=СЧЁТЕСЛИМН('\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$C$5:$C$467;$A$1&"*";'\\Ws1210002\обмен\00_Реестр\[01_Аппараты.xlsx]01.71'!$D$5:$D$467;D$5)


И, в результате, возвращают значение #ЗНАЧ!
Подскажите, в чем проблема, как её решить?
 
эти функции не работают с закрытыми книгами.

решить можно с помощью СУММПРОИЗВ
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Используйте вместо СЧЁТЕСЛИ() функцию СУММПРОИЗВ(), которая работает с закрытыми книгами.
Пример для Вашей первой формулы
Код
=СУММПРОИЗВ(--('[01_Аппараты.xlsx]01.71'!$C$5:$C$467=$A$1&"*"))
 
Цитата
Pelena пишет:
Код
(--(

Что вот это в формуле обозначает?
Как правильно записывать формулу с массивами данных?

А можете для последней формулы написать "переделанную" формулу?
 
Цитата
ikki пишет:
эти функции не работают с закрытыми книгами

я так и думал, печально(((
 
Цитата
Pelena пишет:
Пример для Вашей первой формулы

Эта формула не считает. Все по нулям....
 
не считает, т.к. в таблице реестра не содержится числовых значений, поэтому и использовал СЧЁТ а не СУММ...
 
1) -- переводит значения ИСТИНА/ЛОЖЬ в 1/0
2) для последней формулы
Код
=СУММПРОИЗВ(('[01_Аппараты.xlsx]01.71'!$C$5:$C$467=$A$1&"*")*('[01_Аппараты.xlsx]01.71'!$D$5:$D$467=D$5))

3)
Цитата
Sasha UFO пишет:
Эта формула не считает. Все по нулям...
Сделайте небольшой пример и выложите сюда
 
Вот пример.
 
Можно немного изменить формулу
Для первой:
Код
=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК($A$1;'[01_Аппараты.xlsx]01.71'!$A$5:$A$47)))

Для последней
Код
=СУММПРОИЗВ(ЕЧИСЛО(ПОИСК($A$1;'[01_Аппараты.xlsx]01.71'!$A$5:$A$47))*('[01_Аппараты.xlsx]01.71'!$B$5:$B$47=D$5))
 
Pelena, спасибо за помощь! все работает!
 
Есть у кого-ньть список функций, которые не работают с закрытыми книгами?
 
Я уже как-то писал на этом форуме. Четкий список никто не выводил. Но какую-то часть определить можно. Если в описании функции(справка) написано, что аргумент диапазон, то функция работает только с живой ссылкой на диапазон и как следствие не сможет работать с закрытыми книгами. Если же аргумент массив значений - то работа с закрытыми книгами как правило поддерживается.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, ОКЭ! понятно!
 
Друзья, Pelena мне помогла разобраться с формулами, все работает!
Но, возникла проблемка не большая. Реестры периодически обновляются, т.е. на вкладках либо добавляются строки, либо удаляются. При этом в файле статистики ссылки на диапазоны не обновляются, следовательно, подсчет данных идет не корректно.
Вопрос, что нужно изменить в формулах или в представлении данных, чтобы в файле статистики происходило автоматическое обновление диапазонов, при удалении или добавлении строк в файлах реестров?
 
Сам нашел одно решение. Если открыты файл реестра и файл статистики, при удалении/добавлении строк из/в файла реестра, ссылки на диапазоны автоматически заменяются в файле статистики...
Страницы: 1
Наверх