Страницы: 1
RSS
Вычисляемое поле в сводной таблице. Сумма часов педагогов, пройденных курсов, за период 5 лет
 
Добрый вечер! Уважаемые форумчане, возможно ли в сводной таблице посчитать сумму часов педагогов, пройденных курсов, за период 5 лет, отсчет от даты СЕГОДНЯ()? Начинаю осваивать  сводные таблицы.  
 
Тут одним вычисляемым полем не обойтись - нужна модель данных с таблицей дат.
Проверяйте:
Изменено: alexleoix - 23.05.2021 15:29:30 (перезалил файл с правильной формулой меры)
 

Решение, которое, любезно предоставил alexleoix, не работает по нужному диапазону дат (период 5 лет от даты сегодня). Суммирует весь диапазон по конкретному человеку.  
 
Еще вариант
 
Михаил Л, вариант рабочий. Спасибо большое. Очень приятно, что получаешь помощь в вопросах, в которых возникают трудности. Благодарю!
 
Пока не понимаю почему не работает решение от alexleoix
 
Макросом при активном листе Данные
Код
Sub FIO_Hour()
Dim arr
Dim dic As Object
Dim i As Long
Dim iLastRow As Long
Dim tbl As ListObject
Dim Otchet As Worksheet
  Set Otchet = ThisWorkbook.Worksheets("Отчет")
 Set tbl = ActiveSheet.ListObjects("Таблица1")
    iLastRow = tbl.ListRows.Count + 1
     Range("G1:H" & iLastRow).ClearContents
     Set dic = CreateObject("Scripting.Dictionary"): dic.comparemode = 1
     arr = Range("B2:D" & iLastRow).Value
  For i = 1 To iLastRow - 1
   If arr(i, 2) >= Otchet.Range("E2") And arr(i, 2) <= Otchet.Range("F2") Then
    dic.Item(arr(i, 1)) = dic.Item(arr(i, 1)) + arr(i, 3)
   End If
  Next i
   Range("G1").Resize(dic.Count, 2) = Application.Transpose(Array(dic.keys, dic.Items))
End Sub
 
Я в начале не поняла, что не высчитывает за 5 лет, последовала совету alexleoix, разобралась в его решении, создала календарь, меру в своем документе, но нужное решение не получилось. Я благодарна alexleoix, я научилась новому, теперь  могу эти знания применять в своей работе.  
 
Kuzmich, а Вы можете вставить в пример макрос, а то я не совсем поняла, где результат отображается.
 
Elena,
Результат а столбцах G и H листа Данные
 
Kuzmich, К сожалению, у меня не получается. Пишет Run-timi error 9.  
 
Elena,
Посмотрите в файле. Удачи!
 
Kuzmich, Благодарю!  
 
еще вариант
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each [дата] >= Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{0}[5 Лет назад]),
    #"Сгруппированные строки" = Table.Group(#"Строки с примененным фильтром", {"Имя"}, {{"Часы", each List.Sum([часы]), type number}})
in
    #"Сгруппированные строки"
Изменено: Andrey - 23.05.2021 12:14:33
 
Andrey, Здорово! Спасибо большое! Больше не придется мне заморачиваться с подсчетами.  
 
Цитата
Михаил Л написал:
не понимаю почему не работает решение от  alexleoix
Михаил Л, потому что alexleoix с недосыпу/с перепою забыл отнять 5 лет от YEAR(TODAY).
я, кстати, переписал меру - теперь работает. файл перезалил в #2
 
alexleoix, Большое спасибо. Столько решений, что даже растерялась. Благодарю!
Страницы: 1
Наверх