Страницы: 1
RSS
Дата в функции суммеслимн с помощью &
 
Друзья, помогите пожалуйста! :)
В сводной таблице нужно просуммировать цифры с основной таблицы отдельно по всем месяцам и годам.
Использую функцию СУММЕСЛИМН. Но условие, которой в моем случае есть даты, должны быть динамичными и выбираться из выпадающего списка.
Пробую объединить дату с помощью &, но ничего не получается!((
Очень прошу, посмотрите в мой файл, там будет лучше понятно, что именно мне не удается. :idea:

СПАСИБО !!! Большое Спасибо!))
 
Попробуйте (для E13):
Код
=СУММЕСЛИМН(Data!G:G;Data!A:A;">=" & ДАТА($D13;E$11;1);Data!A:A;"<=" & ДАТА($D13;E$11+1;1)-1)
Владимир
 
Владимир, СУММЕСЛИМН прожорлива, не надо ее столбцами кормить )
 
Здравствуйте, Виктор, я согласен, что не надо есть без меры. :)  В оправдание замечу, что функции SUM, SUMIF, SUMIFS учитывают UsedRange.
Изменено: sokol92 - 08.09.2020 15:43:17
Владимир
 
Цитата
Многие встроенные функции Excel ( СУММ , СУММЕСЛИ ) эффективно вычисляют ссылки на целые столбцы
Неет, SUMIFS не умеет. Или не умела, а в новых версиях научили? Вот этого не знаю.
 
Разработчик (по ссылке выше) пишет, что умеет. В версии 2016 я проверял когда-то.
Цитата
For functions like SUM, SUMIF, and SUMIFS  that handle ranges, the calculation time is proportional to the number  of used cells you are summing or counting. Unused cells are not  examined, so whole column references are relatively efficient, but it is  better to ensure that you do not include more used cells than you need.  Use tables, or calculate subset ranges or dynamic ranges.
Изменено: sokol92 - 08.09.2020 16:40:51
Владимир
 
Значит, прошла курс повышения квалификации )
Но в 2010 еще не умела
 
Цитата
sokol92 написал:
Разработчик (по ссылке выше) пишет, что умеет. В версии 2016 я проверял когда-то.
разработчик, в лучшем случае, ошибается.
В 2016 СУММЕСЛИМН не умеет ограничивать диапазон по заполненному - написали  весь столбец, весь столбец и просматривает.
 
sokol92,
Цитата
sokol92 написал:
Попробуйте (для E13):Код ? 1=СУММЕСЛИМН(Data!G:G;Data!A:A;">=" & ДАТА($D13;E$11;1);Data!A:A;"<=" & ДАТА($D13;E$11+1;1)-1)
Выражаю Вам искреннюю благодарность! Все заработало! СУПЕР!)) Вы очень мне помогли !!! Спасибо!) :)
 
Успехов!
Владимир
 
Цитата
Михаил Витальевич С. написал:
В 2016 СУММЕСЛИМН не умеет ограничивать диапазон по заполненному - написали  весь столбец, весь столбец и просматривает.
это относися только к СЧЕТЕСЛИМН. СУММЕСЛИМН  отрабатывает корректно.
По вопросам из тем форума, личку не читаю.
 
Цитата
sokol92 написал:
функции SUM, SUMIF, SUMIFS  учитывают  UsedRange
Ладно Суммеслимн, а вот функция СУММ и вправду умеет ограничить диапазон до последней заполненной?
Или не верить прочитанному по ссылке?
 
У меня (Excel 2016 32-) время практически одинаково.

Код
Option Explicit
Sub test()
  Dim t As Double, i As Long, arr
  Const nRows As Long = 10000
  Application.ScreenUpdating = False
  ReDim arr(1 To nRows, 1 To 2)
  For i = 1 To nRows
    arr(i, 2) = i Mod 2
    arr(i, 1) = 1
  Next i
  Range("B1:C" & nRows) = arr
  
  Application.Calculation = xlCalculationManual
  Range("A1:A" & nRows).Formula = "=SumIfs(B:B, C:C, C1)"
  t = Timer
  Application.Calculation = xlCalculationAutomatic
  Debug.Print "Весь столбец", Timer - t
 
  Application.Calculation = xlCalculationManual
  Range("A1:A" & nRows).Formula = "=SumIfs($B$1:$B$" & nRows & ", $C$1:$C$" & nRows & ", C1)"
  t = Timer
  Application.Calculation = xlCalculationAutomatic
  Debug.Print "С ограничением по числу строк", Timer - t
 
  Application.ScreenUpdating = True
End Sub

Кроме #6 разработчик об этом пишет и в других местах. У меня нет оснований не верить этим высказываниям.
Изменено: sokol92 - 27.09.2020 16:38:14
Владимир
 
Как оказалось СУММ(ЕСЛИ($C$1:$C$10000=C1;$B$1:$B$10000)) гораздо медленней и СУММЕСЛИМН($B$1:$B$10000; $C$1:$C$10000; C1) и СУММЕСЛИМН($B:$B;$C:$C; C1).
Я ожидал более менее равный результат 8-0
А СУММ(ЕСЛИ(C:C=C1;B:B))  вообще тугодум
 
А что тут удивительного? Сперва формируется массив и потом каждый элемент суммируется. В SUMIF(S) результат накапливается.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх