Фильтрация элементов в SharePoint по дате создания или изменения

Узнайте, как быстро настроить фильтр по дате в SharePoint: от простых представлений до CAML и Power Automate. Показывайте только свежие элементы за 30 дней!

В SharePoint часто возникает необходимость показывать только те элементы‚ которые были созданы или изменены за определённый период (например‚ за последние 30 дней‚ за текущий месяц и т.д.). Ниже описаны несколько проверенных способов реализовать такую фильтрацию – как в классическом‚ так и в современном интерфейсе‚ а также с использованием программных средств (CAML‚ REST‚ Power Automate).


Фильтрация через представление (View) – самый простой способ

Этот метод подходит для большинства сценариев и не требует написания кода.

  1. Откройте нужный список или библиотеку.
  2. На панели команд выберите Все элементы → Сохранить представление как (или Изменить представление‚ если хотите изменить существующее).
  3. В открывшемся окне перейдите на вкладку Фильтр.
  4. Установите переключатель Показать элементы‚ когда поле.
  5. Выберите поле Создано (Created) или Изменено (Modified) – в зависимости от того‚ какой возраст вам нужен.
  6. Выберите оператор больше либо равно (≥) или меньше либо равно (≤).
  7. В поле значения введите формулу‚ которая вычисляет нужную дату. SharePoint понимает относительные даты через функции [Today]‚ [Now] и арифметические операции:
    • Для элементов за последние N дней: [Today]-N
    • Для элементов за текущий месяц: =DATE(YEAR([Today])‚MONTH([Today])‚1)
    • Для элементов за прошлый месяц: =DATE(YEAR([Today])‚MONTH([Today])-1‚1) … =DATE(YEAR([Today])‚MONTH([Today])‚0)
  8. Нажмите OK → Сохранить. Теперь представление показывает только записи‚ удовлетворяющие условию возраста.

Пример: Показать элементы‚ созданные за последние 7 дней.

  • Поле: Создано
  • Оператор: больше либо равно
  • Значение: [Today]-7

Использование вычисляемого столбца (Calculated Column) для более сложных условий

Если нужно фильтровать по возрасту записи относительно другого поля (например‚ дата окончания задачи) или комбинировать несколько условий‚ удобно добавить вычисляемый столбец.

  1. Перейдите в Настройки списка → Создать столбец.
  2. Укажите имя‚ например ВозрастЗаписиДней‚ тип Вычисляемый.
  3. В формуле вычислите разницу между текущей датой и датой создания:
  4. =ДАТА(ГОД([Сегодня]);МЕСЯЦ([Сегодня]);ДЕНЬ([Сегодня])) ― [Создано]
    
  5. Установите формат вывода Число (количество дней).
  6. Сохраните столбец.
  7. Теперь при создании или изменении представления можно фильтровать по этому вычисляемому полю‚ используя обычные операторы (меньше‚ больше и т.д.).

Преимущество: значение вычисляется один раз при изменении элемента‚ что снижает нагрузку при фильтрации больших списков.


Фильтрация с помощью CAML‑запроса (для пользовательских веб‑частей‚ решений на серверной стороне или Power Apps)

Когда требуется программно получить только свежие элементы‚ удобно сформировать CAML‑запрос с условием на поле Created или Modified.

Пример CAML для элементов за последние 30 дней:

<View>
 <Query>
 <Where>
 <Geq>
 <FieldRef Name='Created' />
 <Value Type='DateTime'>
 <Today OffsetDays='-30' />
 </Value>
 </Geq>
 </Where>
 </Query>
</View>

Параметр OffsetDays позволяет указывать смещение относительно сегодняшней даты без необходимости вычислять её в коде.

Для получения элементов за текущий календарный месяц можно использовать:

<Where>
 <And>
 <Geq>
 <FieldRef Name='Created' />
 <Value Type='DateTime'>
 <Today />
 </Value>
 </Geq>
 <Lt>
 <FieldRef Name='Created' />
 <Value Type='DateTime'>
 <Today OffsetDays='1' />
 </Value>
 </Lt>
 </And>
</Where>

Эти запросы работают в:

  • Серверном объектном модели SharePoint (SSOM)
  • Клиентской объектной модели (CSOM / JSOM)
  • REST API (через параметр $filter – см. ниже)
  • Power Apps (функция Filter с условием на Created)

Фильтрация через REST API

Если вы работаете с SharePoint через JavaScript‚ Power Automate или внешние приложения‚ удобно использовать OData‑фильтр.

Пример запроса для элементов за последние 14 дней:

https://contoso.sharepoint.com/sites/site/_api/web/lists/GetBy('Задачи')/items?
 $filter=Created ge datetime'2026-05-25T00:00:00Z'

Чтобы избежать жёсткой даты‚ можно подставить динамическое значение в скрипте:

var today = new Date;
var past = new Date;
past.setDate(today.getDate ― 14);
var filter = "Created ge datetime'" + past.toISOString + "'";
var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetBy('Задачи')/items?$filter=" + encodeURIComponent(filter);

При работе в Power Automate достаточно добавить действие Получить элементы и в поле Filter Query ввести:

Created ge '@{addDays(utcNow‚-14)}'

Фильтрация с помощью Power Automate (Flow)

Power Automate позволяет создавать автоматические уведомления‚ синхронизацию или обработку только «свежих» элементов.

  1. Создайте новый автоматический поток → При создании элемента (или По расписанию).
  2. Добавьте действие Получить элементы из нужного списка.
  3. В разделе Filter Query укажите условие‚ например:
  4. Created ge '@{addDays(utcNow‚-7)}'
    
  5. Далее добавьте любые дальнейшие действия (отправка письма‚ создание задачи в Planner и т.д.).
  6. Сохраните поток.

Такой подход полезен‚ когда нужно не только отфильтровать‚ но и выполнить дополнительную логику (например‚ архивировать старые записи).


Особенности работы с большими списками (порог 5000 элементов)

При работе со списками‚ превышающими пороговое представление (5000 элементов)‚ фильтрация по полям Created или Modified возможна только если эти поля индексированы. Индексирование ускоряет выполнение запросов и позволяет обходить ограничение представления.

Как добавить индекс:

  1. Перейдите в Настройки списка.
  2. В разделе Столбцы выберите Индексированные столбцы.
  3. Нажмите Создать индекс и отметьте поле Создано (или Изменено).
  4. Подтвердите создание.

После индексирования вы можете безопасно использовать любые из описанных выше методов фильтрации‚ даже если список содержит десятки тысяч элементов.


  • Для быстрой настройки без кода используйте представление с фильтром по дате (метод 1).
  • Если нужно вычислять возраст записи или комбинировать несколько условий – добавьте вычисляемый столбец (метод 2);
  • Для разработки пользовательских решений (веб‑части‚ приложения‚ Power Apps) удобно применять CAML или REST/OData (методы 3‑4).
  • Power Automate идеально подходит для автоматизации процессов на основе свежих элементов (метод 5).
  • Не забывайте про индексирование полей даты‚ если работаете с большими списками‚ иначе фильтрация может блокироваться порогом представления.

Следуя этим рекомендациям‚ вы сможете эффективно отфильтровать элементы SharePoint списка по возрасту записи в любом сценарии – от простого пользовательского представления до сложных корпоративных решений.