#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))