Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
VBA и срезы. Фильтрация определенных данных в срезе при открытии книги
 
Добрый день!
Просьба помочь написать код VBA, который бы оставлял в срезе только последние 4 даты при открытии книги. Даты постоянно добавляются.
Прикладываю пример файла как хотелось бы, чтобы было при открытии книги.
P.S. в исходной таблице все данные хранятся в PP и выводятся в сводные и на графики, из которых формируются срезы.
VBA Обновление данных на листе с паролем
 
Добрый день!

Суть задачи: необходимо по нажатию кнопки снимать пароль с Листа > обновлять всю Книгу (запросы PQ, диаграммы, сводные таблицы и т.д.) > обратно защищать Лист паролем.

Прошу помощи, чтобы разобраться почему не работает кнопочный код VBA :
Код
Sub Обновление()

    'снимаем защиту
    Worksheets("Лист3").Unprotect "1" ' - пароль
    
    'обновляем книгу
    ActiveWorkbook.RefreshAll
    
    'пауза на 10 сек
    Application.Wait (Now() + TimeValue("00:00:10"))
    
    'устанавливаем защиту
    Worksheets("Лист3").Protect "1"

    MsgBox "Данные обновлены"

End Sub

Делал проверку F8 - код работает отлично, но при нажатии кнопки "Обновить данные" на Листе - процесс начинает выполняться и в конце выдает ошибку "Ячейка или диаграмма, которую вы пытаетесь изменить, находится на защищенном листе..." и данные не обновляются. Поставил даже паузу, чтобы файл мог спокойно обновиться.

Находил похожие темы, но именно подобную ошибку не встречал... Буду благодарен если отправите или наставите на путь истинный.
DAX/PIVOT Вернуть значение за предыдущий "непустой" период
 
Добрый день, всем небезразличным!
Прошу помощи в написании формулы DAX.

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

Пробовал через формулы DATEADD и PREVIOUSMONTH, но они хороши только если закупки были сделаны в каждом месяце, без пропусков. А в моем случае, есть пропуски по месяцам закупки и понимаю, что нужно добавить условие в формулу типа LASTNONBLANK, но как ее правильно написать не понимаю...
Код
=CALCULATE('Таблица1'[Средняя цена];PREVIOUSMONTH('Calendar'[Date]))

Результат, как в идеале должно быть, добавил в файл примера.
Изменено: Stanislavsky7 - 30.09.2022 08:15:52
Pivot/DAX. Значение последней даты, Необходимо определить цену последней даты закупки
 
Добрый день!
Прошу помощи или подсказки по вопросу ниже. Пытаюсь "подружиться" с Pivot, но "дружба" пока не всегда взаимная...    :sceptic:

Дано:
Есть повторяющаяся номенклатура, которая покупалась несколько раз в году в разные месяцы. Одна покупка - одна строчка в модели данных.

Задача:
Определить цену последней даты закупки для каждой номенклатуры и вывести значение в сводную таблицу.

Пробовал несколько вариантов:

1. =CALCULATE(
MAX(
MainTable[Дата закупки]);
ALLEXCEPT(MainTable;MainTable[Код]))
(получилось определить дату последней закупки по каждой номенклатуре);

3. =CALCULATE(
AVERAGE([Цена]);
ALLEXCEPT(MainTable;MainTable[Код]))
(получилось определить среднюю цену для каждой уникальной номенклатуры);

3. =CALCULATE(
AVERAGE([Цена]);
ALLEXCEPT('MainTable';MainTable[Код]);
LASTDATE('MainTable'[Дата последней закупки]))
(пытался добавить фильтр LASTDATE, но ничего не вышло...);

4.  =CLOSINGBALANCEYEAR(
AVERAGE([Цена]);
'MainTable'[Дата закупки];
ALLEXCEPT(MainTable;MainTable[Код]))
(получилось определить цену последней даты закупки, но подтягиваются цены только тех номенклатур, где есть дата закупки 31.08.2022, остальные не определяются...)

Заранее СПАСИБО за помощь!
Изменено: Станислав Пьяненков - 16.09.2022 10:36:28
Страницы: 1
Наверх