Формулы не обновляются, если другая рабочая книга закрыта

#excel #excel-formula

#excel #excel-формула

Вопрос:

У меня есть приведенная ниже формула, которая ссылается на другую рабочую книгу в той же папке, но когда файл открыт, он просто работает нормально, проблема в том, что другой файл Excel закрыт, потому что формула не обновляется

Формула, когда открыта другая рабочая книга

 =IFERROR(COUNTIFS(Auto_Zero.xlsx!MonthDB,B6,Auto_Zero.xlsx!CSRDB,C2),"")
  

Формула при закрытии другого файла

 =IFERROR(COUNTIFS('C:UserscsamayoaDesktopQA 
TestAuto_Zero.xlsx'!MonthDB,B6,'C:UserscsamayoaDesktopQA 
TestAuto_Zero.xlsx'!CSRDB,C2),"")
  

Я перепробовал много разных предложений, и формула не запускается, когда другой файл закрыт : (

Комментарии:

1. Если вы создаете формулу с открытой внешней рабочей книгой, а затем закрываете ее, Excel должен предоставить правильный синтаксис.

2. Я пробовал это, и когда я закрываю другую рабочую книгу и нажимаю F2 и enter, чтобы убедиться, что это сработает, это не так. Я не знаю, что еще мне нужно сделать

3. В любом случае возникают проблемы с графами и закрытыми рабочими книгами. Используйте формулы IF с настройкой массива:

Ответ №1:

Функции Excel, такие как COUNTIFS и SUMIFS, не пересчитываются при ссылке на закрытую книгу. Вы можете попробовать использовать конструктор запросов Excel, который работает как коды ADO. Позволяет извлекать данные из закрытых книг, базы данных и т. Д. Надеюсь, это поможет.

самый простой способ добиться этого без использования дополнительных инструментов — использовать приведенный ниже код, чтобы открыть файл, выполнить вычисления и закрыть файл обратно. Не уверен, что это поможет. Пожалуйста, измените ‘H:My Documents4674576.xlsx ‘ к вашему исходному пути к файлу. Вставьте этот код в новый модуль вашей рабочей книги Excel. запустите код и посмотрите, поможет ли это.


Sub loadfileandCalc()
Dim acWb As Workbook
Dim wb As Workbook
Set wb = Workbooks.Open(Filename:="H:My Documents4674576.xlsx", UpdateLinks:=False, ReadOnly:=True)
Set acWb = ActiveWorkbook
ActiveSheet.Calculate
Set acWb = Nothing
wb.Close False
Set wb = Nothing

End Sub

Комментарии:

1. Я понятия не имею, как использовать конструктор запросов Excel, и большинство формул, которые я буду использовать, являются countif: (

2. Спасибо, чувак, ты потрясающий. Я оставил формулу: =IFERROR(IF(ISBLANK(Table1[CSR Name]),»»,COUNTIFS(‘C:UserscsamayoaDesktopQA TestAuto_Zero.xlsx «! MonthDB, $ B $ 6,’C:UserscsamayoaDesktopQA TestAuto_Zero.xlsx ‘!CSRDB,Table1[Имя CSR])),»») . . Я скопировал ваш код vba и изменил путь. Я добавил кнопку, связанную с макрокомандой 🙂

3. Я не против нажать на кнопку, пока я получаю информацию: D

Ответ №2:

Формулы замены для формул, связанных с закрытыми рабочими книгами:

Формулы, такие как COUNTIF , SUMIF , COUNTIFS и SUMIFS , связанные с закрытыми рабочими книгами, не обновляют свои результаты.

В приведенном ниже списке представлены формулы замены, которые работают со ссылками на закрытые рабочие книги. Он показывает синтаксис фактической формулы и ее замену, чтобы упростить перевод.

 =COUNTIF( range, criteria )
=SUM(( range = criteria ) * 1 ) '*Entered as Formula Array*

=SUMIF( range, criteria, sum_range )
=SUMPRODUCT(( range = criteria ) * 1, sum_range )   

=COUNTIFS( criteria_range1, criteria1, [criteria_range2], [criteria2], ...)
=SUM(( criteria_range1 = criteria1 ) * ( [criteria_range2] = [criteria2] ), ...) '*Entered as Formula Array*

=SUMIFS( sum_range, criteria_range1, criteria1, [criteria_range2], [criteria2], ...)
=SUMPRODUCT( sum_range, (criteria_range1 = criteria1 ) * ([criteria_range2] = [criteria2]) * ...)
  

Массив формул вводится нажатием [Ctrl] [Shift] [Enter] одновременно, вы увидите { и } вокруг формулы, если она введена правильно

Ответ №3:

Таким образом, простая формула будет выглядеть примерно так:

=SUM((Auto_Zero.xlsx!MonthDB=B6)*(Auto_Zero.xlsx!CSRDB=C2))

Для ввода формулы используйте Ctrl-Shift-Enter. Фигурные скобки должны волшебным образом появляться в строке формул при использовании этой комбинации клавиш.

Комментарии:

1. Спасибо, MacroMarc . это работает, но когда я закрываю другой файл, я получаю #VALUE

2. Формула отсутствует, заключая скобки, она должна быть =SUM((Auto_Zero.xlsx!MonthDB=$B3)*(Auto_Zero.xlsx!CSRDB=$C3))