Как автоматически обновлять ячейки в excel

Каждый пользователь согласится с тем, что Microsoft Excel является одним из самых полезных инструментов в древности современных компьютеров. Каждый день миллионы людей используют электронные таблицы Microsoft Excel для выполнения множества задач, начиная от простых, таких как ведение записей журнала или записей, до расширенного анализа данных на основе сложных формул. Неоспоримо, что формулы Excel играют жизненно важную роль в обработке данных. Но иногда вы можете обнаружить, что формулы Excel не обновляются автоматически.

Формулы Excel не обновляются автоматически

Это может быть очень неприятно, когда ваши формулы не обновляются автоматически в Excel. Основываясь на этом, вот возможные причины, почему это может происходить. В этом посте мы объясним четыре таких сценария:

  1. Расчет настроен на «Ручной»
  2. Ячейка отформатирована как текст
  3. Кнопка Показать формулы включена
  4. Пробел введен перед знаком равенства.

Давайте рассмотрим каждый из них в деталях.

1] Расчет настроен на «Ручной»

Это одна из самых распространенных причин и первая проверка, которую нужно выполнить. Иногда параметр расчета настраивается на «ручной», и это основной сбой, заставляющий ячейки не обновлять формулы в Microsoft Excel. Вы можете решить эту проблему.

Запустите Excel, нажмите « Вкладка формул », а затем кнопку « Параметры расчета ». Теперь установите для параметра расчета значение Автоматический .

Этот параметр можно изменить с помощью макросов или других книг Excel, открытых ранее. Следовательно, если вы не знаете об этом параметре, это может быть причиной этой проблемы.

2] Ячейка отформатирована как текст .

Случайное форматирование ячеек, включая формулы, как « Текст » может стать еще одной проблемой, вызывающей эту проблему. В текстовом формате ячейка не будет рассчитываться так, как предполагалось.

Нажмите на ячейку и проверьте группу номеров на вкладке «Главная». Если отображается « Текст », измените его на « Общие », используя раскрывающееся меню.

Теперь пересчитайте формулу в ячейке, дважды щелкнув по ячейке и нажав « Ввод» .

3] Показать кнопку “Формулы” включено

Если кнопка « Показать формулы » на вкладке «Формулы» включена, формулы не работают. Это может быть сделано случайно пользователем или кем-то, кто ранее использовал эту книгу. Эта кнопка в основном используется при аудите формул, поэтому вместо конечного результата отображается формула. Тем не менее, эта вкладка очень полезна при устранении неполадок с глюками формулы.

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

4] Пробел введен перед знаком равенства

Последняя причина может заключаться в том, что при вводе формулы, если вы ошибочно вводите пробел перед «Равным (=)», следовательно, формула не будет рассчитываться. Эту ошибку очень трудно заметить, поэтому очень часто она остается незамеченной.

Проверьте, есть ли пробел, дважды щелкнув по ячейке, если это так, удалите ее, и формула обновится.

Я надеюсь, что эти советы помогут многим из вас решить проблему с формулами Excel, которые не обновляются автоматически. Обычные пользователи Excel сталкиваются с этими проблемами не раз, но теперь вы можете решать их достаточно хорошо!

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2013 Еще…Меньше

Вы можете в любой момент нажать кнопку Обновить, чтобы обновить данные в сводных таблицах в книге. Вы можете обновить данные для сводных таблиц, импортированных из Power Query, таких как база данных (SQL Server, Oracle, Access и т. д.), куб служб Analysis Services, веб-канал данных и многие другие источники. Можно также обновить данные из таблицы Excel,которая автоматически включает все изменения внешнего источника данных.

По умолчанию сводные таблицы не обновляются автоматически, но можно указать, что сводная таблица автоматически обновляется при открытии книги, содержащего сводную таблицу.

  1. Щелкните любое место сводной таблицы. На ленте появится вкладка Работа со сводными таблицами.

    Работа со сводными таблицами

  2. На вкладке Анализ выберите команду Обновить или нажмите ALT+F5.

    Изображение ленты Excel

    Совет: Вы также можете обновить сводную таблицу, щелкнув ее правой кнопкой мыши и выбрав команду «Обновить».

  3. Чтобы обновить сразу все сводные таблицы в книге, на вкладке Анализ щелкните стрелку рядом с кнопкой Обновить и выберите пункт Обновить все.

Если таблица обновляется слишком долго, на вкладке Анализ нажмите стрелку рядом с кнопкой Обновить и выберите пункт Состояние обновления. Так вы сможете проверить состояние обновления.

Чтобы отменить обновление, нажмите Отменить обновление.

Если при обновлении сводной таблицы изменяется ширина столбцов и форматирование данных, но вы не хотите, чтобы это происходило, установите вот эти флажки.

  1. На вкладке Анализ нажмите кнопку Параметры.

    Кнопка "Параметры" на вкладке "Анализ"

  2. На вкладке Макет и формат установите флажки Автоматически изменять ширину столбцов при обновлении и Сохранять форматирование ячеек при обновлении.

  1. Щелкните любое место сводной таблицы. На ленте появится вкладка Работа со сводными таблицами.

    Работа со сводными таблицами

  2. На вкладке Анализ нажмите кнопку Параметры.

    Кнопка "Параметры" на вкладке "Анализ"

  3. На вкладке « Данные» проверьте данные обновления при открытии файла .

  1. Щелкните любое место сводной таблицы. На ленте появится вкладка Работа со сводными таблицами.

    Работа со сводными таблицами

  2. На вкладке Анализ выберите команду Обновить или нажмите ALT+F5.

    Изображение ленты Excel

    Совет: Вы также можете обновить сводную таблицу, щелкнув ее правой кнопкой мыши и выбрав команду «Обновить».

  3. Чтобы обновить сразу все сводные таблицы в книге, на вкладке Анализ щелкните стрелку рядом с кнопкой Обновить и выберите пункт Обновить все.

Если таблица обновляется слишком долго, на вкладке Анализ нажмите стрелку рядом с кнопкой Обновить и выберите пункт Состояние обновления. Так вы сможете проверить состояние обновления.

Чтобы отменить обновление, нажмите Отменить обновление.

Если при обновлении сводной таблицы изменяется ширина столбцов и форматирование данных, но вы не хотите, чтобы это происходило, установите вот эти флажки.

  1. На вкладке Анализ нажмите кнопку Параметры.

    Кнопка "Параметры" на вкладке "Анализ"

  2. На вкладке Макет и формат установите флажки Автоматически изменять ширину столбцов при обновлении и Сохранять форматирование ячеек при обновлении.

  1. Щелкните любое место сводной таблицы. На ленте появится вкладка Работа со сводными таблицами.

    Работа со сводными таблицами

  2. На вкладке Анализ нажмите кнопку Параметры.

    Кнопка "Параметры" на вкладке "Анализ"

  3. На вкладке « Данные» проверьте данные обновления при открытии файла .

  1. Щелкните любое место сводной таблицы. На ленте появится вкладка Работа со сводными таблицами.

    Работа со сводными таблицами

  2. На вкладке Анализ выберите команду Обновить или нажмите ALT+F5.

    Изображение ленты Excel

    Совет: Вы также можете обновить сводную таблицу, щелкнув ее правой кнопкой мыши и выбрав команду «Обновить».

  3. Чтобы обновить сразу все сводные таблицы в книге, на вкладке Анализ щелкните стрелку рядом с кнопкой Обновить и выберите пункт Обновить все.

Если таблица обновляется слишком долго, на вкладке Анализ нажмите стрелку рядом с кнопкой Обновить и выберите пункт Состояние обновления. Так вы сможете проверить состояние обновления.

Чтобы отменить обновление, нажмите Отменить обновление.

Если при обновлении сводной таблицы изменяется ширина столбцов и форматирование данных, но вы не хотите, чтобы это происходило, установите вот эти флажки.

  1. На вкладке Анализ нажмите кнопку Параметры.

    Кнопка "Параметры" на вкладке "Анализ"

  2. На вкладке Макет и формат установите флажки Автоматически изменять ширину столбцов при обновлении и Сохранять форматирование ячеек при обновлении.

  1. Щелкните любое место сводной таблицы. На ленте появится вкладка Работа со сводными таблицами.

    Работа со сводными таблицами

  2. На вкладке Анализ нажмите кнопку Параметры.

    Кнопка "Параметры" на вкладке "Анализ"

  3. На вкладке « Данные» проверьте данные обновления при открытии файла .

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Нужна дополнительная помощь?

 

Уважаемые знатоки. Вот столкнулся с такой проблемой.  

  Значение ячейки А1 на Листе1 зависит от значения ячейки В2 на Листе2. Вот если поменять значение В2 а потом перейти на лист1 то ячейка А1 не обновляется. И что бы обновить данные нужно кликнуть 2 раза по ячейке А1 и нажать на Enter. Может можно написать код который бы обновлял все формулы на листе. Подскажите, как можно решить данную проблему.  

  Заранее огромное спасибо!

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

А версия Excel какая? Пересчёт какой стоит? Если ручной, то поставьте Автоматический.    
В Excel 2003 — Сервис — Параметры — Вычисления — Автоматически

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

Если Excel 2010 — вкладка Формулы — (справа вверху) Параметры вычисления — выбрать Автоматически

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#4

12.09.2010 00:35:04

{quote}{login=Makintosh}{date=12.09.2010 12:25}{thema=Не обновляются автоматически данные}{post}Уважаемые знатоки. Вот столкнулся с такой проблемой.  

  Значение ячейки А1 на Листе1 зависит от значения ячейки В2 на Листе2. Вот если поменять значение В2 а потом перейти на лист1 то ячейка А1 не обновляется. И что бы обновить данные нужно кликнуть 2 раза по ячейке А1 и нажать на Enter. Может можно написать код который бы обновлял все формулы на листе. Подскажите, как можно решить данную проблему.  

  Заранее огромное спасибо!{/post}{/quote}  
может стоит включить автоматическое вычисления?

Спасибо

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

Можно это сделать макросом    

  Application.Calculation = xlCalculationAutomatic

 

В настройках стоит автоматический пересчёт. Но всё равно приходится обновлять вручную. И ещё заметил, если формула написана встроенными функциями Excel то всё хорошо автоматом обновляется, а если с помощью написанной пользовательской функцией то возникает эта проблема.

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

А у вас в написанных функциях есть строка ?  

  Application.Volatile

 

{quote}{login=Pavel55}{date=12.09.2010 12:39}{thema=}{post}А у вас в написанных функциях есть строка ?  

  Application.Volatile{/post}{/quote}  

  Нет, такой строки нету.

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#9

12.09.2010 00:48:32

{quote}{login=Makintosh}{date=12.09.2010 12:42}{thema=Re: }{post}{quote}{login=Pavel55}{date=12.09.2010 12:39}{thema=}{post}А у вас в написанных функциях есть строка ?  

  Application.Volatile{/post}{/quote}  

  Нет, такой строки нету.{/post}{/quote}  

  Function нннннн()  
   Application.Volatile True    
   …  
   …  
   …  
   myFunction=…  
End Function

Спасибо

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

А вы попробуйте добавьте её сразу первой строкой под названием функции, вот так  

  Function МояСуперФункция()  
Application.Volatile  

  ‘ля-ля-ля  
‘ля-ля-ля  

  End Function  

  вдруг поможет

 

Ребята, вы просто мозги. Всё помогло. Добавил строчку Application.Volatile и всё хорошо стало.

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

#12

12.09.2010 00:57:41

Мы такие )) Только учтите, что написав эту строку в вашей функции, ваша функция стала «летучей», т.е. она теперь всегда будет пересчитываться при любом изменении на листе, в книге, в другой открытой книги, т.е. при любом телодвижении (кроме изменения цвета фона ячейки). И соответственно, если ваша функции медлительная, то это будет сказываться на быстроте работы всего Excel

Microsoft Excel позволяет фильтровать данные. Это полезная функция, которая может помочь вам разобраться в больших объемах данных. Если у вас нет технических ноу-хау, необходимых для создания базы данных, эта функция спасет вам жизнь. Фильтры довольно простые и позволяют включать или исключать данные из столбца. Фильтр распространяется и применяется также к значениям данных в соответствующих строках. Фильтр не обновляется автоматически. Если значение в отфильтрованном столбце изменяется из-за того, что вы обновили его вручную или из-за того, что формула уже используется, вам придется снова применить фильтры. Простой фрагмент кода позволяет обновлять отфильтрованные столбцы на лету.

Вам нужно будет включить макросы и сохранить файл Excel как файл с поддержкой макросов, .XLSM, чтобы использовать код. Чтобы сохранить файл как файл с поддержкой макросов, выберите «Файл»> «Сохранить как» и выберите «Книга с поддержкой макросов Excel» в диалоговом окне «Сохранить как».

Затем выберите лист, к которому вы применили фильтры. Щелкните его правой кнопкой мыши и выберите в контекстном меню «Просмотреть код».

Откроется окно Microsoft Visual Basic с текущим листом Excel. Вставьте следующий код в окно кода.

Private Sub Worksheet_Change(ByVal Target As Range)
If Me.FilterMode = True Then
With Application
.EnableEvents = False
.ScreenUpdating = False
End With

With ActiveWorkbook
.CustomViews.Add ViewName:="Mine", RowColSettings:=True
Me.AutoFilterMode = False
.CustomViews("Mine").Show
.CustomViews("Mine").Delete
End With
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End If

End Sub

Сохраните файл. Если вы не сохранили файл как книгу Excel с поддержкой макросов, вам будет предложено сделать это еще раз. Этот файл, который вы сохраните, будет сохранен как копия и не будет перезаписывать текущий файл.

После добавления кода вы можете обновить любую ячейку в отфильтрованном столбце, и он автоматически обновит отфильтрованные данные в соответствии с заданными вами условиями. Этот код был написан пользователем Stack Exchange Сорином.

Что вы думаете об этой статье?

Хитрости »

21 Август 2016              62075 просмотров


Автообновляемая сводная таблица

Многие, кто работал со сводными таблицами наверняка знают, что при изменении значений в исходных данных(данные, на основании которых создана сводная) сама сводная таблица при этом не обновляется. Чтобы обновить надо проделать еще пару манипуляций:

    Выделить любую ячейку сводной таблицы→Правая кнопка мыши→Обновить(Refresh) или вкладка Данные(Data) →Обновить все(Refresh all) →Обновить(Refresh)

Однако, если в конец исходных данных добавить строку(или несколько), то с большой долей вероятности даже обновление сводной таблицы не поможет — добавленная строка не появится в сводной. И чтобы её увидеть необходимо будет изменить источник данных для сводной таблицы, включив новую строку в диапазон. Не очень удобно, не правда ли? Чтобы добиться расширения диапазона исходных данных автоматически вместе с добавлением туда данных, лучше позаботиться об этом до создания сводной таблицы.


Недоавтообновление
Почему «недо» — жать кнопку Обновить все же придется…Но не отчаивайтесь — читайте до конца и мы научимся обновлять все автоматом.

Для счастливых обладателей Excel 2007 и старше есть простой способ без лишних телодвижений. Это встроенный инструмент Таблица(Table). Его еще иначе называют «умная таблица» и я тоже буду применять этот термин, чтобы не было путаницы.

Умная таблица

— это специальный объект, который представляет собой правильную таблицу с заголовками, которая расширяется по мере добавления в неё данных. В ней много еще чего полезного, но нас интересует сейчас именно то, что она расширяется сама по мере добавления данных и что на её основе можно создать сводную таблицу. В нашем случае она будет играть роль динамического именованного диапазона(стандартный именованный диапазон не может быть источником данных для сводной таблицы, поэтому и приходится идти другими путями). Чтобы создать такую таблицу необходимо:

К выбранному диапазону автоматически будет применено форматирование как таблицы, используемое по умолчанию. На это можно не обращать внимания, т.к. для наших целей это по большому счету не важно.

    Если вдруг захочется и здесь навести красоту, то это тоже делается довольно легко:
    Выделяем любую ячейку в этой таблице-переходим на вкладку Работа с таблицами(Table tools)Конструктор(Desigh)Стили таблиц(Table styles). Можно выбрать один из предлагаемых там вариантов и применить. Если ни один из вариантов не подходит — создаем свой. Раскрываем список стилей и выбираем Создать стиль таблицы(New table style…)

А дальше все как привыкли:

  1. Выделить любую ячейку исходной таблицы(теперь уже «умной»)
  2. Вкладка Вставка(Insert) -группа Таблица(Table) -Сводная таблица(PivotTable)
  3. В диалоговом окне Создание сводной таблицы(Create PivotTable) в пункте Выбрать таблицу или диапазон(Select a table or range) в поле Таблица или диапазон(Range/Table) будет автоматически указан не адрес какого-то диапазона, а имя созданной умной таблицы:
    Создание сводной на основе умной таблицы
    Далее надо определить место размещения Сводной таблицы:

    • На новый лист (New Worksheet)
    • На существующий лист (Existing Worksheet)
  4. нажать OK

Готово. Теперь при добавлении строк в эту таблицу для их отображения в сводной достаточно будет лишь обновить сводную таблицу как привыкли. Правда, тут тоже есть нюанс — добавлять строки надо правильно. Можно вбить данные в любую ячейку первой пустой строки таблицы — таблица автоматом расшириться, добавив еще одну строку. Теперь туда можно скопировать нужные данные или добить вручную. Если надо вставить сразу несколько строк — в правом нижнем углу последней строки умной таблицы есть слегка выделяющийся уголочек, который надо ухватить мышью и растянуть на нужное кол-во строк/столбцов.
Если мы просто скопируем строки ниже таблицы, то она не расширится. Это надо учитывать.


Если необходимо

настроить на авторасширение уже созданную сводную

, то порядок почти такой же, только сводную таблицу создавать не надо. Преобразуем исходные данные в умную таблицу, переходим на лист со сводной таблицей. Выделяем любую ячейку в сводной таблице, переходим на динамическую вкладку Работа со сводными таблицами(PivotTable Tools)Параметры(Options) -группа кнопок Даныне(Data)Источник данных(Change data Source). В появившемся окне в поле Таблица или диапазон(Table/Range) указываем либо ссылку на всю умную таблицу, либо имя нашей умной таблицы(если знаете где его подсмотреть).

На что здесь следует обратить внимание:

если указывался диапазон, то если он указан верно — в поле вместо адреса ячеек будет отображено имя умной таблицы:
Изменить источник данных
Если же после указания видите именно диапазон — значит что-то указано неверно или таблица не является умной(возможно, форматирование от умной таблицы, но сама умная таблица была удалена).


Полное автообновление

Для полного счастья можно подключить работу макросов. Что я хочу? Я хочу, чтобы как только я изменил/добавил данные в исходные данные — сводная тут же обновилась. Для этого надо сделать следующее:

  1. убеждаемся, что макросы разрешены(Почему не работает макрос?, Что такое макрос и где его искать?)
  2. перейти на лист исходных данных(в моем случае лист так и называется — Исходные данные)
  3. жмем на ярлычке этого листа правой кнопкой мыши —Исходный текст(View code):
    Модуль листа
  4. вставляем туда следующий код:
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
        'проверяем - изменения внутри умной таблицы или нет
        If Not Intersect(Target, Target.Parent.ListObjects(1).Range) Is Nothing Then
            'если внутри таблицы, то обновляем сводную таблицу на листе "Автообновляемая сводная"
            Sheets("Автообновляемая сводная").PivotTables(1).RefreshTable
            'для всех сводных на листе
    '        Dim pt As PivotTable
    '        For Each pt In Sheets("Автообновляемая сводная").PivotTables
    '            pt.RefreshTable
    '        Next
        End If
    End Sub
  5. Сохраняем файл(это опционально :))

Все, теперь при любом изменении внутри исходных данных(будь это добавление/удаление строк или просто изменение значений внутри таблицы) сводная таблица обновиться без занудных действий вроде выделения сводной и жмахания кнопки Обновить.
Пара важных комментариев к коду:

  • Sheets(«Автообновляемая сводная») — здесь Автообновляемая сводная это имя листа, на котором расположена сводная таблица. Это очень важно. Если будет указано неверное имя листа — код выдаст ошибку и никакого обновления, конечно же, не произойдет
  • код сделан таким образом, что на листе исходных данных должна быть только одна умная таблица. Нет, их может быть несколько, но код будет ориентироваться исключительно на первую. И если вы плохо знакомы с принципами создания объектов — то лучше не рисковать. Хотя и здесь можно выйти из положения. Если вы знаете имя своей умной таблицы(его можно подсмотреть на вкладке Конструктор -группа Свойства), то можно изменить код так:
    вместо строки
    If Not Intersect(Target, Target.Parent.ListObjects(1).Range) Is Nothing Then
    записать такую
    If Not Intersect(Target, Target.Parent.ListObjects(«Таблица1»).Range) Is Nothing Then
    где Таблица1 — имя вашей умной таблицы, на основании которой создана сводная.
  • тот же нюанс с листом самой сводной — код ориентирован так, что обновляет только первую сводную на листе Автообновляемая сводная. Здесь так же можно заменить цифру 1 на имя сводной(например .PivotTables(«СводнаяТаблица1»).RefreshTable), либо же сделать обновление всех сводных. Для этого надо раскомментировать блок ‘для всех сводных на листе(убрать апострофы перед строками) и убрать строку с именем листа, чтобы получилось так:
    Private Sub Worksheet_Change(ByVal Target As Range)
        'проверяем - изменения внутри умной таблицы или нет
        If Not Intersect(Target, Target.Parent.ListObjects(1).Range) Is Nothing Then
            'если внутри таблицы, то обновляем все сводные на листе "Автообновляемая сводная"
            Dim pt As PivotTable
            For Each pt In Sheets("Автообновляемая сводная").PivotTables
                pt.RefreshTable
            Next
        End If
    End Sub

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

  • P.S. Так же можно использовать и иной подход — вставить в модуль листа Автообновляемая сводная такой код:

    Private Sub Worksheet_Activate()
        Me.PivotTables(1).RefreshTable
    End Sub

    тогда сводная на листе будет обновляться лишь тогда, когда будет активирован лист со сводной. Плюсы подобного подхода очевидны в случаях, если часто приходится менять исходные данные. В первом коде сводная будет обновляться при каждом ручном изменении в исходных данных, даже если после этого мы не переходили на лист сводной, а дальше стали делать изменения в исходных данных.

    Скачать файл с автообновляемой сводной таблицей:

      Tips_PT_AutoRefreshPT.xlsm (46,5 KiB, 3 041 скачиваний)


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как автоматически обновлять формулы в excel
  • Как автоматически обновлять связи в excel
  • Как автоматически обновлять сводную таблицу excel
  • Как автоматически обновлять дату в excel
  • Как автоматически обновлять данные excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии