Что такое calculate excel

Содержание

  1. CALCULATE
  2. Синтаксис
  3. Параметры
  4. Выражения логического фильтра
  5. Выражение фильтра таблицы
  6. Функции модификатора фильтра
  7. Возвращаемое значение
  8. Remarks
  9. Примеры
  10. DAX-Урок 2. Функция CALCULATE
  11. Синтаксис функции CALCULATE()
  12. Обзор формул
  13. Элементы формулы
  14. Использование констант в формулах
  15. Использование операторов в формулах
  16. Типы операторов
  17. Арифметические операторы
  18. Операторы сравнения
  19. Текстовый оператор конкатенации
  20. Операторы ссылок
  21. Порядок выполнения Excel в Интернете в формулах
  22. Порядок вычислений
  23. Приоритет операторов
  24. Использование круглых скобок
  25. Использование функций и вложенных функций в формулах
  26. Синтаксис функций
  27. Ввод функций
  28. Вложенные функции
  29. Использование ссылок в формулах
  30. Стиль ссылок A1
  31. Различия между абсолютными, относительными и смешанными ссылками
  32. Стиль трехмерных ссылок
  33. Стиль ссылок R1C1
  34. Использование имен в формулах

CALCULATE

Вычисляет выражение в измененном контексте фильтра.

Также имеется функция CALCULATETABLE. Она имеет точно такую же функциональность, за исключением того, что изменяет контекст фильтра, примененный к выражению, возвращающему объект таблицы.

Синтаксис

Параметры

Термин Определение
expression Вычисляемое выражение.
filter1, filter2,… (Необязательно) Логические выражения или табличные выражения, определяющие фильтры или функции модификаторов фильтра.

Выражение, используемое в качестве первого параметра, по сути является тем же, что и мера.

Фильтры могут быть:

  • выражениями логического фильтра;
  • выражениями фильтра таблицы.
  • Функции изменения фильтра

При наличии множества фильтров они могут применяться с использованием логического оператора «И» (&&), то есть все условия должны выполняться (TRUE), либо логического оператора «ИЛИ» (||), при котором достаточно выполнения любого из условий.

Выражения логического фильтра

Фильтр логического выражения — это выражение, результатом которого является значение TRUE или FALSE. Существует несколько правил, которые они должны соблюдать:

  • Они могут ссылаться на столбцы из одной таблицы.
  • Они не могут ссылаться на меры.
  • Выражение не может использовать вложенную функцию CALCULATE.

Начиная с выпуска Power BI Desktop за сентябрь 2021 г. применяется также следующее:

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

Выражение фильтра таблицы

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

Функции модификатора фильтра

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

Функция Назначение
REMOVEFILTERS Удаление всех фильтров или фильтров из одного или нескольких столбцов таблицы или из всех столбцов одной таблицы.
ALL 1 , ALLEXCEPT, ALLNOBLANKROW Удаление фильтров из одного или нескольких столбцов или из всех столбцов одной таблицы.
KEEPFILTERS Добавление фильтра без удаления существующих фильтров для тех же столбцов.
USERELATIONSHIP Вызов неактивной связи между связанными столбцами. В этом случае активная связь автоматически становится неактивной.
CROSSFILTER Изменение направления фильтра (от обоих до одного и от одного до обоих) или отключение связи.

1 Функция ALL и ее варианты ведут себя как модификаторы фильтров и как функции, возвращающие объекты таблицы. Если функция REMOVEFILTERS поддерживается вашим средством, лучше использовать ее для удаления фильтров.

Возвращаемое значение

Значение, которое является результатом выражения.

При указании выражений фильтра функция CALCULATE изменяет контекст фильтра для вычисления выражения. Для каждого критерия фильтра существует два возможных стандартных результата, если выражение фильтра не заключено в функцию KEEPFILTERS:

  • Если столбцы (или таблицы) не находятся в контексте фильтра, то новые фильтры будут добавлены в контекст фильтра для вычисления выражения.
  • Если столбцы (или таблицы) уже находятся в контексте фильтра, существующие фильтры будут перезаписаны новыми фильтрами для вычисления выражения CALCULATE.

Функция CALCULATE, используемая без фильтров, позволяет добиться определенного требования. Она переводит контекст строки в контекст фильтра. Она необходима, если выражение (не мера модели), которое суммирует данные модели, необходимо вычислить в контексте строки. Этот сценарий может возникнуть в формуле вычисляемого столбца или при вычислении выражения в функции-итераторе. Обратите внимание, что если мера модели используется в контексте строки, переход контекста выполняется автоматически.

Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).

Примеры

Следующее определение меры таблицы Sales выдает результат дохода, но только для продуктов с синим цветом.

Примеры в этой статье можно использовать с примером модели Adventure Works DW 2020 Power BI Desktop. Чтобы получить модель, воспользуйтесь образцом модели DAX.

Категория Объем продаж Синий доход
Accessories 1 272 057,89 долл. США 165 406,62 долл. США
Bikes 94 620 526,21 долл. США 8 374 313,88 долл. США
Clothing 2 117 613,45 долл. США 259 488,37 долл. США
Компоненты $ 11 799 076,66 803 642,10 долл. США
Всего 109 809 274,20 долл. США 9 602 850,97 долл. США

Функция CALCULATE вычисляет сумму по столбцу Sales Amount таблицы Sales в измененном контексте фильтра. Новый фильтр добавляется в столбец Color таблицы Product — или фильтр перезаписывает любой фильтр, уже примененный к столбцу.

Следующее определение меры таблицы Sales дает отношение продаж по продажам для всех каналов продаж.

Канал Объем продаж % дохода всего канала
Интернет 29 358 677,22 $ 26,74 %
Reseller $ 80 450 596,98 73,26 %
Всего 109 809 274,20 долл. США 100,00 %

Функция DIVIDE делит выражение, которое суммирует сумму значений столбце Sales Amount таблицы Sales (в контексте фильтра), на то же выражение в измененном контексте фильтра. Функция CALCULATE изменяет контекст фильтра с помощью функции REMOVEFILTERS, которая является функцией-модификатором фильтра. Она удаляет фильтры из столбца Канал таблицы Заказы.

Следующее определение вычисленного столбца таблицы Customer классифицирует клиентов по классу лояльности. Это очень простой сценарий. Когда размер дохода, полученного от клиента, составляет менее 2500 долл. США, он классифицируется как Low; в противном случае — High.

В этом примере контекст строки преобразуется в контекст фильтра. Это называется переходом контекста. Функция ALLEXCEPT удаляет фильтры из всех столбцов таблицы Customer, за исключением столбца CustomerKey.

Источник

DAX-Урок 2. Функция CALCULATE

Первая функция, с которой необходимо начинать изучение DAX является CALCULATE. Данная функция не имеет точного аналога в Excel, однако ее можно сравнить с функциями SUMIFS и COUNTIFS. Если коротко, то данная функция выполняет наложение фильтров на другие расчетные функции, тем самым мы можем отбирать и включать в расчеты только нужные нам данные.

Синтаксис функции CALCULATE()

=CALCULATE( , , , …)

Выражение, которое должно нам вернуть число как результат вычисления (значение, а не таблицу). По этой причине в этом параметре часто используются статистические функции типа SUM, MIN, MAX, COUNTROWS и т.д.

  1. SUM([ НазваниеСтолбца ])
  2. SUM([ НазваниеСтолбца1 ])/MAX([ НазваниеСтолбца2 ])
  3. Название другого расчетного поля (меры)

фильтр1 >, > .

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

  1. [ НазваниеСтолбца ] = » Авто«
  2. [ НазваниеСтолбца]>= 6
  3. ALL( ‘НазваниеТаблицы) или ALL( ‘НазваниеТаблицы ‘ [ НазваниеСтолбца])
  4. FILTER( ‘НазваниеТаблицы’; ‘НазваниеТаблицы ‘[ НазваниеСтолбца] = » Зеленый«)

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

Давайте на ее основе создадим сводную таблицу и подсчитаем количество записей для каждого продукта.

Теперь давайте создадим новое расчетное поле (меру) Count_All_Product в нашей сводной таблице, которое будет отображать общее количество записей напротив всех строк.

Каким образом мы получили в расчетном поле Count_All_Product цифры 16? Объяснение в том, что мы сняли для этого поля все фильтры, которые были применены в сводной таблице (каждая строка в сводной таблице это отдельный фильтр), с помощью функции ALL(). То есть, другими словами, функция ALL( Demo ) дает команду снять все фильтры для расчетного поля Count_All_Product, которые применяются к таблице Demo .

Давайте добавим еще одно поле в строки, чтобы видеть какой была продажа каждого товара по городам.

Видим, что цифры в поле Count of Rows меняются, а в расчетном поле Count_All_Product — нет. Все правильно, поскольку для последнего мы сняли все фильтры в формуле. Теперь давайте внесем незначительные изменения в нашу формулу и посмотрим на результат.

=CALCULATE( COUNTROWS( Demo );ALL( Demo [ Product ]) )

Мы изменили аргумент для функции ALL(), заменив Demo на Demo [ Product ]. Теперь фильтры будут сняты не для всей таблицы Demo , а только для ее столбца Demo [ Product ].

Таким образом мы видим, что на поле Count of Rows действуют фильтры Product и City, а на расчетное поле Count_All_Product только фильтр City.

Источник

Обзор формул

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

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

Ниже приведен пример формулы, умножающей 2 на 3 и прибавляющей к результату 5, чтобы получить 11.

Следующая формула использует функцию ПЛТ для вычисления платежа по ипотеке (1 073,64 долларов США) с 5% ставкой (5% разделить на 12 месяцев равняется ежемесячному проценту) на период в 30 лет (360 месяцев) с займом на сумму 200 000 долларов:

Ниже приведены примеры формул, которые можно использовать на листах.

=A1+A2+A3 Вычисляет сумму значений в ячейках A1, A2 и A3.

=КОРЕНЬ(A1) Использует функцию КОРЕНЬ для возврата значения квадратного корня числа в ячейке A1.

=СЕГОДНЯ() Возвращает текущую дату.

=ПРОПИСН(«привет») Преобразует текст «привет» в «ПРИВЕТ» с помощью функции ПРОПИСН.

=ЕСЛИ(A1>0) Анализирует ячейку A1 и проверяет, превышает ли значение в ней нуль.

Элементы формулы

Формула также может содержать один или несколько из таких элементов: функции, ссылки, операторы и константы.

1. Функции. Функция ПИ() возвращает значение числа Пи: 3,142.

2. Ссылки. A2 возвращает значение ячейки A2.

3. Константы. Числа или текстовые значения, введенные непосредственно в формулу, например 2.

4. Операторы. Оператор ^ («крышка») применяется для возведения числа в степень, а оператор * («звездочка») — для умножения.

Использование констант в формулах

Константа представляет собой готовое (не вычисляемое) значение, которое всегда остается неизменным. Например, дата 09.10.2008, число 210 и текст «Прибыль за квартал» являются константами. выражение или его значение константами не являются. Если формула в ячейке содержит константы, но не ссылки на другие ячейки (например, имеет вид =30+70+110), значение в такой ячейке изменяется только после изменения формулы.

Использование операторов в формулах

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

Типы операторов

Приложение Microsoft Excel поддерживает четыре типа операторов: арифметические, текстовые, операторы сравнения и операторы ссылок.

Арифметические операторы

Арифметические операторы служат для выполнения базовых арифметических операций, таких как сложение, вычитание, умножение, деление или объединение чисел. Результатом операций являются числа. Арифметические операторы приведены ниже.

Возведение в степень

Операторы сравнения

Операторы сравнения используются для сравнения двух значений. Результатом сравнения является логическое значение: ИСТИНА либо ЛОЖЬ.

= (знак «больше или равно»)

Больше или равно

Текстовый оператор конкатенации

Амперсанд ( &) используется для объединения (соединения) одной или нескольких текстовых строк в одну.

Соединение или объединение последовательностей знаков в одну последовательность

Выражение «Северный»&«ветер» дает результат «Северный ветер».

Операторы ссылок

Для определения ссылок на диапазоны ячеек можно использовать операторы, указанные ниже.

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

; (точка с запятой)

Оператор объединения. Объединяет несколько ссылок в одну ссылку.

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

Порядок выполнения Excel в Интернете в формулах

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

Порядок вычислений

Формулы вычисляют значения в определенном порядке. Формула всегда начинается со знака равенства ( =). Excel в Интернете интерпретирует символы, которые следуют знаку равенства, как формулу. После знака равенства вычисляются элементы (операнды), такие как константы или ссылки на ячейки. Они разделяются операторами вычислений. Excel в Интернете вычисляет формулу слева направо в соответствии с определенным порядком для каждого оператора в формуле.

Приоритет операторов

Если объединить несколько операторов в одну формулу, Excel в Интернете выполняет операции в порядке, показанном в следующей таблице. Если формула содержит операторы с одинаковым приоритетом (например, если формула содержит оператор умножения и деления), Excel в Интернете вычисляет операторы слева направо.

Возведение в степень

Умножение и деление

Сложение и вычитание

Объединение двух текстовых строк в одну

Использование круглых скобок

Чтобы изменить порядок вычисления формулы, заключите ее часть, которая должна быть выполнена первой, в скобки. Например, приведенная ниже формула возвращает значение 11, так как Excel в Интернете выполняет умножение перед добавлением. В этой формуле число 2 умножается на 3, а затем к результату прибавляется число 5.

В отличие от этого, если для изменения синтаксиса используются круглые скобки, Excel в Интернете 5 и 2, а затем умножает результат на 3, чтобы получить 21.

В следующем примере скобки, которые заключают первую часть формулы, принудительно Excel в Интернете сначала вычислить B4+25, а затем разделить результат на сумму значений в ячейках D5, E5 и F5.

Использование функций и вложенных функций в формулах

Функции — это заранее определенные формулы, которые выполняют вычисления по заданным величинам, называемым аргументами, и в указанном порядке. Эти функции позволяют выполнять как простые, так и сложные вычисления.

Синтаксис функций

Приведенный ниже пример функции ОКРУГЛ, округляющей число в ячейке A10, демонстрирует синтаксис функции.

1. Структура. Структура функции начинается со знака равенства (=), за которым следует имя функции, открывающая скобка, аргументы функции, разделенные запятыми, и закрывающая скобка.

2. Имя функции. Чтобы отобразить список доступных функций, щелкните любую ячейку и нажмите клавиши SHIFT+F3.

3. Аргументы. Существуют различные типы аргументов: числа, текст, логические значения (ИСТИНА и ЛОЖЬ), массивы, значения ошибок (например #Н/Д) или ссылки на ячейки. Используемый аргумент должен возвращать значение, допустимое для данного аргумента. В качестве аргументов также используются константы, формулы и другие функции.

4. Всплывающая подсказка аргумента. При вводе функции появляется всплывающая подсказка с синтаксисом и аргументами. Например, всплывающая подсказка появляется после ввода выражения =ОКРУГЛ(. Всплывающие подсказки отображаются только для встроенных функций.

Ввод функций

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

Чтобы упростить создание и редактирование формул и свести к минимуму количество опечаток и синтаксических ошибок, пользуйтесь автозавершением формул. После ввода знака = (знак равенства) и начальных букв или триггера отображения Excel в Интернете под ячейкой отображается динамический раскрывающийся список допустимых функций, аргументов и имен, соответствующих буквам или триггеру. После этого элемент из раскрывающегося списка можно вставить в формулу.

Вложенные функции

В некоторых случаях может потребоваться использовать функцию в качестве одного из аргументов другой функции. Например, в приведенной ниже формуле для сравнения результата со значением 50 используется вложенная функция СРЗНАЧ.

1. Функции СРЗНАЧ и СУММ вложены в функцию ЕСЛИ.

Допустимые типы вычисляемых значений Вложенная функция, используемая в качестве аргумента, должна возвращать соответствующий ему тип данных. Например, если аргумент должен быть логическим, т. е. Если это не так, Excel в Интернете отображает #VALUE! В противном случае TE102825393 выдаст ошибку «#ЗНАЧ!».

Предельное количество уровней вложенности функций . В формулах можно использовать до семи уровней вложенных функций. Если функция Б является аргументом функции А, функция Б находится на втором уровне вложенности. Например, в приведенном выше примере функции СРЗНАЧ и СУММ являются функциями второго уровня, поскольку обе они являются аргументами функции ЕСЛИ. Функция, вложенная в качестве аргумента в функцию СРЗНАЧ, будет функцией третьего уровня, и т. д.

Использование ссылок в формулах

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

Стиль ссылок A1

Стиль ссылок по умолчанию По умолчанию в Excel в Интернете используется ссылочный стиль A1, который ссылается на столбцы с буквами (A–XFD, всего 16 384 столбца) и ссылается на строки с числами (от 1 до 1 048 576). Эти буквы и номера называются заголовками строк и столбцов. Для ссылки на ячейку введите букву столбца, и затем — номер строки. Например, ссылка B2 указывает на ячейку, расположенную на пересечении столбца B и строки 2.

Ячейка или диапазон

Ячейка на пересечении столбца A и строки 10

Диапазон ячеек: столбец А, строки 10-20.

Диапазон ячеек: строка 15, столбцы B-E

Все ячейки в строке 5

Все ячейки в строках с 5 по 10

Все ячейки в столбце H

Все ячейки в столбцах с H по J

Диапазон ячеек: столбцы А-E, строки 10-20

Ссылка на другой лист . В приведенном ниже примере функция СРЗНАЧ используется для расчета среднего значения диапазона B1:B10 на листе «Маркетинг» той же книги.

1. Ссылка на лист «Маркетинг».

2. Ссылка на диапазон ячеек с B1 по B10 включительно.

3. Ссылка на лист, отделенная от ссылки на диапазон значений.

Различия между абсолютными, относительными и смешанными ссылками

Относительные ссылки . Относительная ссылка в формуле, например A1, основана на относительной позиции ячейки, содержащей формулу, и ячейки, на которую указывает ссылка. При изменении позиции ячейки, содержащей формулу, изменяется и ссылка. При копировании или заполнении формулы вдоль строк и вдоль столбцов ссылка автоматически корректируется. По умолчанию в новых формулах используются относительные ссылки. Например, при копировании или заполнении относительной ссылки из ячейки B2 в ячейку B3 она автоматически изменяется с =A1 на =A2.

Абсолютные ссылки . Абсолютная ссылка на ячейку в формуле, например $A$1, всегда ссылается на ячейку, расположенную в определенном месте. При изменении позиции ячейки, содержащей формулу, абсолютная ссылка не изменяется. При копировании или заполнении формулы по строкам и столбцам абсолютная ссылка не корректируется. По умолчанию в новых формулах используются относительные ссылки, а для использования абсолютных ссылок надо активировать соответствующий параметр. Например, при копировании или заполнении абсолютной ссылки из ячейки B2 в ячейку B3 она остается прежней в обеих ячейках: =$A$1.

Смешанные ссылки . Смешанная ссылка содержит либо абсолютный столбец и относительную строку, либо абсолютную строку и относительный столбец. Абсолютная ссылка на столбец имеет вид $A1, $B1 и т. д. Абсолютная ссылка на строку имеет вид A$1, B$1 и т. д. Если положение ячейки с формулой изменяется, относительная ссылка меняется, а абсолютная — нет. При копировании или заполнении формулы по строкам и столбцам относительная ссылка автоматически изменяется, а абсолютная ссылка не корректируется. Например, при копировании или заполнении смешанной ссылки из ячейки A2 в ячейку B3 она автоматически изменяется с =A$1 на =B$1.

Стиль трехмерных ссылок

Удобный способ для ссылки на несколько листов . Трехмерные ссылки используются для анализа данных из одной и той же ячейки или диапазона ячеек на нескольких листах одной книги. Трехмерная ссылка содержит ссылку на ячейку или диапазон, перед которой указываются имена листов. Excel в Интернете использует все листы, хранящиеся между начальным и конечным именами ссылки. Например, формула =СУММ(Лист2:Лист13!B5) суммирует все значения, содержащиеся в ячейке B5 на всех листах в диапазоне от Лист2 до Лист13 включительно.

При помощи трехмерных ссылок можно создавать ссылки на ячейки на других листах, определять имена и создавать формулы с использованием следующих функций: СУММ, СРЗНАЧ, СРЗНАЧА, СЧЁТ, СЧЁТЗ, МАКС, МАКСА, МИН, МИНА, ПРОИЗВЕД, СТАНДОТКЛОН.Г, СТАНДОТКЛОН.В, СТАНДОТКЛОНА, СТАНДОТКЛОНПА, ДИСПР, ДИСП.В, ДИСПА и ДИСППА.

Трехмерные ссылки нельзя использовать в формулах массива.

Трехмерные ссылки нельзя использовать вместе с оператор пересечения (один пробел), а также в формулах с неявное пересечение.

Что происходит при перемещении, копировании, вставке или удалении листов . Нижеследующие примеры поясняют, какие изменения происходят в трехмерных ссылках при перемещении, копировании, вставке и удалении листов, на которые такие ссылки указывают. В примерах используется формула =СУММ(Лист2:Лист6!A2:A5) для суммирования значений в ячейках с A2 по A5 на листах со второго по шестой.

Вставка или копирование . Если вставить или скопировать листы между листами 2 и 6 (в этом примере это конечные точки), Excel в Интернете содержит все значения в ячейках A2–A5 из добавленных листов в вычислениях.

Удаление . При удалении листов между листами 2 и 6 Excel в Интернете удаляет их значения из вычисления.

Перемещение . При перемещении листов между листами 2 и 6 в расположение за пределами указанного диапазона листов Excel в Интернете удаляет их значения из вычисления.

Перемещение конечного листа . При перемещении листа 2 или листа 6 в другое место в той же книге Excel в Интернете корректирует вычисление в соответствии с новым диапазоном листов между ними.

Удаление конечного листа . При удалении sheet2 или Sheet6 Excel в Интернете корректирует вычисление в соответствии с диапазоном листов между ними.

Стиль ссылок R1C1

Можно использовать такой стиль ссылок, при котором нумеруются и строки, и столбцы. Стиль ссылок R1C1 удобен для вычисления положения столбцов и строк в макросах. В стиле R1C1 Excel в Интернете указывает расположение ячейки с «R», за которым следует номер строки и «C», за которым следует номер столбца.

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

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

Абсолютная ссылка на ячейку, расположенную во второй строке второго столбца

Относительная ссылка на строку, расположенную выше текущей ячейки

Абсолютная ссылка на текущую строку

При записи макроса Excel в Интернете некоторые команды с помощью ссылочного стиля R1C1. Например, если вы записываете команду, например нажатие кнопки « Автосчет», чтобы вставить формулу, которая добавляет диапазон ячеек, Excel в Интернете формулу с помощью стиля R1C1, а не стиля A1, ссылок.

Использование имен в формулах

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

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

Источник

Файлы к уроку:

  • Для спонсоров Boosty
  • Для спонсоров VK

Ссылки:

  • Страница курса
  • Плейлист YouTube
  • Плейлист ВК

Описание

В этом уроке мы изучим функцию CALCULATE. Это одна из самых важных функций Power Pivot. Без нее вряд ли обойдется хоть один отчет в Excel, если в нем используется Power Pivot.

Аналогами этой функции являются функции Excel СУММЕСЛИ, СРЗНАЧЕСЛИ, МИНЕСЛИ, МАКСЕСЛИ и т. д., т. е. все, что угодно с ЕСЛИ на конце.

У этой функции 2 обязательных параметра:

  1. Функция, которая выполняет вычисления
  2. Фильтры или условия, по которым эти вычисления выполняются

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

Например, при помощи CALCULATE мы можем найти сумму продаж в 2015 году. В таком случае в первом параметре будет функция SUM, а в фильтре будет указано, что год равен 2015.

Вычисляем рост прибыли относительно 2015 года

Сначала нам понадобится вычислить сумму прибыли:

=SUM('Sales'[Profit])

Дальше мы вычислим сумму прибыли за 2015 год с помощью CALCULATE:

=CALCULATE([Sum of Profit];Sales[Year]=2015)

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

=[Sum of Profit] - [Sum of Profit 2015]

Если разделить сумму прибыли на сумму прибыли в 2015 году и вычесть единицу, то получится процентный рост прибыли относительно 2015 года:

=[Sum of Profit] / [Sum of Profit 2015] - 1

Примененные функции

  • CALCULATE
  • COUNTROWS
  • DISTINCTCOUNT

Курс Power Pivot Базовый

Номер урока Урок Описание
1 Power Pivot Базовый №1. Простые вычисляемые столбцы, первая мера В этом уроке вы научитесь создавать простые вычисляемые столбцы в Power Pivot, а также создадите свою первую простую меру.
2 Power Pivot Базовый №2. Простые меры В этом уроке мы научимся создавать простые меры Power Pivot. Мы изучим функции SUM, COUNTROWS, DISTINCTCOUNT. Еще вы сможете повторить или изучить как работать со сводными таблицами в Excel и как создавать диаграммы Excel.
3 Power Pivot Базовый №3. Функция CALCULATE В этом уроке мы изучим функцию CALCULATE в Power Pivot, а также вспомним функции SUM, DISTINCTCOUNT и еще создадим условный столбец в данных.
4 Power Pivot Базовый №4. Как работает DAX В этом теоретическом уроке мы изучим как работают формулы DAX.
5 Power Pivot Базовый №5. Невозможно создать диаграмму этого типа В этом уроке мы разберем еще 1 способ обойти ошибку Невозможно создать диаграмму этого типа. Мы изучим еще одну формулу для создания динамического именного диапазона и создадим еще одну визуализацию — диаграмму дерево.
6 Power Pivot Базовый №6. Функции ALL, ALLSELECTED В этом уроке мы продолжим изучать функцию CALCULATE, а именно изучим функции ALL, ALLSELECTED, которые используются в параметре Фильтр.
7 Power Pivot Базовый №7. Множество таблиц, повторение пройденного В этом уроке мы начнем работать с множеством таблиц. Мы научимся создавать связи между таблицами и повторим почти все, что проходили ранее, но уже со множеством таблиц в модели данных.
8 Power Pivot Базовый №8. Несвязанные таблицы В этом видео я расскажу, что такое несвязанные таблицы и как ими пользоваться. Мы разберем пример с ценовыми порогами. Допустим вы хотите в сводной показать продажи товаров с ценой от 1 до 3 долларов.
9 Power Pivot Базовый №9. Функция FILTER В этом уроке мы изучим одну из важнейших DAX функций — FILTER. Она используется в параметре фильтра функции CALCULATE, когда в сравнении участвует мера.
10 Power Pivot Базовый №10. Работа с датой В этом уроке мы изучим функции для работы с датами, которые помогут нам вычислить сумму в том же периоде прошлого года, сумму с начала года и нарастающий итог за все время.
11 Power Pivot 11. Пользовательский календарь ч. 1 Вам нужно выполнить вычисления, опираясь на внутренний календарь компании, например, период в вашей компании начинается 29 числа, а заканчивается 28 числа следующего месяца.
12 Power Pivot Базовый №12. Посчитать рабочие дни Посчитаем количество рабочих дней в каждом месяце и среднюю сумму продаж в день для каждого месяца.
13 Power Pivot Базовый №13. Наборы (Сеты), ассиметричные сводные таблицы Научимся пользоваться наборами для создания асимметричных сводных таблиц, изучим функцию КУБЗНАЧЕНИЯ.
14 Power Pivot Базовый №14. Переключение детализации (Наборы, MDX, HASONEFILTER, VALUES) Создадим срез для переключения детализации с месяца на квартал.

Думаю многие пользователи Excel знакомы с функцией СУММЕСЛИМН(). Эта функция суммирует значения указанного столбца по определённым условиям. К примеру, можно использовать СУММЕСЛИМН() для суммирования значений столбца СуммаПродаж, но только тех строк в которых значения столбца Год равны 2012.
Так вот, в DAX существует более усовершенствованный и более мощный аналог данной функции, который называется CALCULATE().
Преимущества CALCULATE() перед СУММЕСЛИМН() заключаются в следующем:

    1. Более понятный синтаксис;
    2. Он не ограничивается лишь подсчётом суммы по условию. К примеру в Excel, СУММЕСЛИМН() используется для подсчёта суммы по условию, СЧЕТЕСЛИМН() для подсчёта количества по условию а СРЗНАЧЕСЛИМН() для подсчёта среднего значения. Однако в Excel нету функций МАКСЕСЛИМН(), МИНЕСЛИМН() или же СТДОТКЛЕСЛИМН(). В этом смысле CALCULATE() безграничен. Он позволяет использовать любую функцию агрегирования (либо комплексную формулу) и рассчитывать её по указанным условиям;
    3. Он используется для создания мер а СУММЕСЛИМН() не может быть использован в сводных таблицах.

Синтаксис функции CALCULATE() 

CALCULATE(<логическое выражение>,<фильтр 1>,<фильтр 2>,…) 
пример: CALCULATE(SUM(t_sales[Маржа]), t_sales[Год]=2001)
пример: CALCULATE([ПродажиЗаДень], t_sales[Год]=2002, t_sales[КодПродукта]=313)

Конечно же в фильтр-аргументах наряду с оператором «=» можно также использовать:

  • < (меньше чем);
  • > (больше чем);
  • <= (меньше или равно);
  • >= (больше или равно);
  • <> (не равно).

CALCULATE() в действии — несколько быстрых примеров

Начнём с простой сводной таблицы. Переместим «Год» в поле «Строки», а [ИтогоПродаж] в поле «Значения».

Теперь создадим меру, которая высчитывает сумму продаж за 2002 год:

[Продажи_2002]=CALCULATE([ИтогоПродаж], t_sales[Год]=2002)

Обратите внимание:

  1. Мы использовали имя другой меры в качестве аргумента для CALCULATE(). То есть в качестве логического выражения в CALCULATE() может быть использована как формула так и уже существующая мера;
  2. В первом фильтр-аргументе 2002 не в кавычках. Это потому, что формат столбца числовой. Если бы формат столбца был текстовым, тогда фильтр-аргумент был бы равен =»2002″;
  3. В этой мере был использован лишь один фильтр-аргумент, но при необходимости можно добавить ещё столько фильтр-аргументов, сколько захотим.

Как видите, значения [Продажи_2002] и [ИтогоПродаж] в строке 2002 совпадают. Однако уверен что Вы недоумеваете почему в строках 2001, 2003, 2004 вместо нулей также отображается сумма продаж за 2002 год. Объясню чуть позже. А пока давайте заменим в поле «Строки» сводной таблицы «Год» на «НомерМесяца».

Теперь, как и обещал объясню ситуацию с первым примером.
При использовании CALCULATE() нужно учитывать три главные особенности этой функции:

  1. Фильтр-аргументы функции CALCULATE() действуют в той фазе вычисления меры в которой применяются фильтры. Эти аргументы изменяют фильтр-контекст сводной таблицы;
  2. Если фильтр-аргументы применяются к столбцу который уже находится в сводной таблице, то они изменяют контекст сводной для этого столбца. Именно поэтому в первом приведённом примере, функция CALCULATE() отображала одинаковое значение для всех строк столбца Год;
  3. Если фильтр-аргумент применяется к столбцу, не находящемуся в сводной таблице, то он дополняет существующий фильтр-контекст сводной. Во втором примере, у нас имелась сводная таблица в которой указывалась разбивка продаж по номерам месяца. В этом примере фильтр-аргумент меры [Продажи_2002] дополнил существующий фильтр-контекст сводной и отображал продажи по каждому месяцу в 2002 году.

Чтобы закрепить наше понимание использования функции CALCULATE() используем два более полезных примера.

Два полезных примера использования функции  CALCULATE()

Пример №1: транзакции определённого типа

В нашей таблице продаж, в отдельном столбце «ТипТранзакции», указаны три типа транзакций, характерных для розничного бизнеса:

  1. обычные продажи;
  2. рекламные продажи;
  3. возвраты

С помощью функции CALCULATE() мы можем создать меры для вычисления объёма продаж по каждому типу транзакции:

[ОбычныеПродажи]=CALCULATE([ИтогоПродаж],t_sales[ТипТранзакции]=1)
[РекламныеПродажи]=CALCULATE([ИтогоПродаж],t_sales[ТипТранзакции]=3)
[Возвраты]=CALCULATE([ИтогоПродаж],t_sales[ТипТранзакции]=2)*-1

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

И с помощью этих мер мы можем вычислить сумму чистых продаж:

[ЧистыеПродажи]=[ОбычныеПродажи]+[РекламныеПродажи]+[Возвраты]

Или же узнать какой процент общих продаж составляют РекламныеПродажи:

[ПроцРекламныхПродаж]=[РекламныеПродажи]/([ОбычныеПродажи]+[РекламныеПродажи]) 

Пример №2: рост с начала деятельности

Создадим базовую меру (мера не ссылающаяся на другие меры) рассчитывающую количество активных клиентов:

[АктивныеКлиенты]=DISTINCTCOUNT(t_sales[КодКлиента])

А теперь создадим меру рассчитывающую количество активных клиентов в самый первый год начала продаж, т.е.  в 2001:

[Клиенты2001]=CALCULATE([АктивныеКлиенты],t_sales[Год]=2001)

Теперь, на основе этих двух мер мы можем рассчитать процент прироста клиентов по отношению к первому году начала продаж:

[ПриростКлиентовС2001]=DIVIDE([АктивныеКлиенты]-[Клиенты2001],[Клиенты2001])

Комбинирование фильтр-аргументов

Как Вы уже наверное поняли, функция CALCULATE() может принимать неограниченное количество фильтр-аргументов. Однако, по умолчанию все они применяются по принципу «И тот фильтр-аргумент И этот». Если же нужно, чтобы фильтр-аргументы применялись по принципу «ИЛИ» нужно использовать оператор «||».

  = CALCULATE([ИтогоПродаж],
 t_sales[ТипТранзакции]=1||t_sales[ТипТранзакции]=3)) 

И помните, при использовании оператора «||» возможно сравнивать лишь значения одного столбца — в нашем случае ТипТранзакции. Нельзя использовать оператор «||» для сравнения двух разных столбцов.

Home / VBA / VBA Calculate (Cell, Range, Row, & Workbook)

By default, in Excel, whenever you change a cell value Excel recalculates all the cells that have a calculation dependency on that cell. But when you are using VBA, you have an option to change it to the manual, just like we do in Excel.

calculate-cell-value-using-vba

Using VBA Calculate Method

You can change the calculation to the manual before you start a code, just like the following.

Application.Calculation = xlManual

When you run this code, it changes the calculation to manual.

using-vba-calculate-method

And at the end of the code, you can use the following line of code to switch to the automatic.

Application.Calculation = xlAutomatic
switch-to-automatic-using-vba

You can use calculation in the following way.

calculation-method-vba-code
Sub myMacro()
    Application.Calculation = xlManual   
        'your code goes here   
    Application.Calculation = xlAutomatic
End Sub

Calculate Now (All the Open Workbooks)

If you simply want to re-calculate all the open workbooks, you can use the “Calculate” method just like below.

Calculate

Use Calculate Method for a Sheet

Using the following way, you can re-calculate all the calculations for all the

ActiveSheet.Calculate
Sheets("Sheet1").Calculate

The first line of code re-calculates for the active sheet and the second line does it for the “Sheet1” but you can change the sheet if you want.

Calculate for a Range or a Single Cell

In the same way, you can re-calculate all the calculations for a particular range or a single cell, just like the following.

Sheets("Sheet1").Range("A1:A10").Calculate
Sheets("Sheet1").Range("A1").Calculate

Это продолжение перевода книги Роб Колли. Формулы DAX для Power Pivot. Главы не являются независимыми, поэтому рекомендую читать последовательно.

Предыдущая глава       Содержание    Следующая глава

DAX-функция CALCULATE() близка функциям Excel СУММЕСЛИ() и СУММЕСЛИМН(). Последние суммируют значения в указанном столбце, но отфильтровывают строки, которые соответствуют критериям в том же или ином столбце. Так, например, можно использовать СУММЕСЛИ() для суммирования по столбцу Sales, но только для строк, где столбец Year содержит 2012. Так вот, DAX-функция CALCULATE() еще мощнее:

  1. Ее синтаксис проще.
  2. Агрегирование возможно для гораздо более широкого круга вычислений. Например, в Excel нет функции МАКСЕСЛИ (начиная с Excel 2016 такая функция есть 🙂 ).
  3. Ее можно использовать в сводных таблицах (как часть формулы меры), чего не может сделать обычная СУММЕСЛИ().

Ris. 8.1. Sintaksis funktsii CALCULATE

Рис. 8.1. Синтаксис функции CALCULATE()

Скачать заметку в формате Word или pdf

Синтаксис функции CALCULATE()

Например, CALCULATE(SUM(Sales[Margin]); Sales[Year]=2001); CALCULATE([Sales per Day]; Sales[Year]=2002; Sales[ProductKey]=313).

Посмотрим на CALCULATE() в действии. Возьмем простую сводную таблицу из файла ch08_CALCULATE…

Ris. 8.2. Prodazhi po godam

Рис. 8.2. Продажи по годам

… и добавим новую меру [2002 Sales] = CALCULATE([Total Sales]; Sales[Year]=2002)

Обратите внимание: мы использовали имя меры в качестве первого аргумента функции. Аргумент [Filter1] не заключен в кавычки – столбец Year числовой (дата в Excel – это число). Если бы он был текстовым, нам пришлось бы использовать кавычки «2002». Мы использовали только один фильтр, но могли бы использовать несколько.

Ris. 8.3. Novaya mera pokazyvaet prodazhi tolko za 2002 god

Рис. 8.3. Новая мера показывает продажи только за 2002 год

Эти результаты вас удивляют? Возможно, вы ожидали, что в 2001, 2003 и 2004 годах будут отображаться нули для новой меры!?

Давайте заменим годы на месяцы:

Ris. 8.4. Prodazhi po mesyatsam novaya mera vedet sebya bolee predskazuemo

Рис. 8.4. Продажи по месяцам: новая мера ведет себя более предсказуемо

Как работает функция CALCULATE()

Есть три ключевых момента, которые нужно знать об аргументах [Filter]:

  1. Аргументы [Filter] работают во время шага 2 третьего золотого правила мер DAX. Фильтры функции CALCULATE() изменяют набор фильтров, для которых будет вычисляться мера.
  2. Если аргумент [Filter] действует на столбец, который уже есть в сводной таблице, он переопределяет набор фильтров для этого столбца. В нашем примере (см. рис. 8.3) в ячейке D3 используется фильтр [Year]=2001, но второй аргумент функции CALCULATE() уже содержит фильтр Sales[Year]=2002. Поэтому установка сводной таблицы на 2001 год отменяется и переопределяется внутри функции CALCULATE() для меры [2002 Sales]. Вот почему ячейки за 2001, 2003, 2004 гг. и итоги на рис. 8.3 вернули продажи за 2002 год.
  3. Если аргумент [Filter] действует на столбец, которого нет в сводной таблице (как на рис. 8.4), он просто добавляется в набор фильтров.

Таким образом, шаг 2 третьего золотого правила мер DAX звучит так: Измените набор фильтров, если используете функцию CALCULATE().

Пример использования функции CALCULATE()

В бизнесе не все транзакции являются продажами. Некоторые компании выделяют: обычные продажи, возврат и рекламные образцы.

Откройте Excel-файл ch08_CALCULATE.xlsx, перейдите на вкладку Power Pivot, кликните на кнопку Управление. В окне Power Pivot перейдите на вкладку Sales. Вы найдете столбец TransType. Он имеет три значения:

Ris. 8.5. Tri tipa transaktsij v baze dannyh Power Pivot

Рис. 8.5. Три типа трансакций в базе данных Power Pivot

Определим четыре новые меры. Обычные продажи – только операции типа 1:

[Regular Sales] = CALCULATE([Total Sales]; Sales[TransType]=1)

Рекламные продажи – сделки типа 3:

[Promotional Sales] = CALCULATE([Total Sales]; Sales[TransType]=3)

Возврат – операции типа 2, выраженные отрицательным числом:

[Refunds] = CALCULATE([Total Sales]; Sales[TransType]=2)*-1

Чистые продажи:

[Net Sales] = [Regular Sales] + [Promotional Sales] + [Refunds]

А также давайте рассчитаем долю рекламных продаж:

[Pct Sales on Promo] = [Promotional Sales]/([Regular Sales] + [Promotional Sales])

Ris. 8.6. Pyat mer dobavleny v svodnuyu tablitsu

Рис. 8.6. Пять мер добавлены в сводную таблицу; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Еще один пример

Во втором примере мы собираемся определить несколько мер, которые показывают активность клиентов. Для начала – базовая мера, показывающая, сколько клиентов было активно в данный момент времени:

[Active Customers] = DISTINCTCOUNT(Sales[CustomerKey])

Базовой мы называем меру, которая не связана к другим мерам, а вычисляется по формуле аналогично вычисляемому столбцу таблицы.

Далее – количество клиентов в 2001 г. (первый год в бизнесе):

[2001 Customers] = CALCULATE([Active Customers]; Sales[Year]=2001)

Мера роста по сравнению с 2001 годом:

[Customer Growth Since 2001] =DIVIDE([Active Customers]-[2001 Customers]; [2001 Customers])

Функция DIVIDE() – безопасное деление: позволяет указать альтернативное значение, если знаменатель равен нулю.

Ris. 8.7. Mery aktivnosti klientov

Рис. 8.7. Меры активности клиентов

В аргументе [Filter] помимо оператора = можно использовать: <, >, >=, <=, <>.

Если в одной функции CALCULATE() несколько аргументов [Filter], все они подчиняются логическому И, т.е., отбираемая строка должна соответствовать каждому аргументу [Filter]. Если вам нужно применить логическое ИЛИ, вы можете использовать оператор ||. Например, общий объем продаж (но не возвратов):

=CALCULATE([Total Sales]; Sales[TransType]=1||Sales[TransType]=3)

Важно! При использовании в одном аргументе [Filter] оператор || можно применять для данных только одного столбца.

Обратите внимание, что общее количество активных клиентов в ячейке С7 на рис. 8.7 не равно сумме по ячейкам С3:С6. Это еще один прекрасный пример того, почему важно думать о мерах, агрегирующих данные по исходной таблице (таблицам) в Power Pivot, а не по значениям в самой сводной таблице Excel. Что касается ячейки итогов, то о ней следует думать, как об агрегировании в ситуации фильтра Все. В контексте этой ячейки поле Year отсутствует. Это легко проверить, если удалить Year в сводной таблице из области Строки:

Ris. 8.8. Tolko obshhie itogi

Рис. 8.8. Только общие итоги

Когда мы очищаем фильтр Year, формула DISTINCTCOUNT(Sales[CustomerKey]) работает с нефильтрованной таблицей и подсчитывает каждого клиента только один раз! Мы получаем 18 484, что является правильным ответом.

Не все итоги являются общими, но принцип сохраняется:

Ris. 8.9. Filtry na razlichnyh itogovyh yachejkah

Рис. 8.9. Фильтры на различных итоговых ячейках

Физическое расположение ячейки с мерой внутри сводной таблицы не имеет значения. Важен только набор ее фильтров. В нашем примере набор фильтров Year=2002, Month=ALL абсолютно одинаков для механизма DAX независимо от того, где расположены поля Year и MonthNum в строках, столбцах, фильтрах отчета или срезах.

Понравилась статья? Поделить с друзьями:
  • Что такое calc в excel
  • Что такое byte word
  • Что такое broadway в word
  • Что такое break link excel
  • Что такое borders excel