Excel DAX - Funções

A maioria dos DAX functionstêm os mesmos nomes e funcionalidades das funções do Excel. No entanto, as funções DAX foram modificadas para usar tipos de dados DAX e trabalhar com tabelas e colunas.

O DAX tem algumas funções adicionais que você não encontrará no Excel. Essas funções DAX são fornecidas para fins específicos, como pesquisas baseadas em relacionamentos associados aos aspectos do banco de dados relacional do Modelo de Dados, a capacidade de iterar em uma tabela para realizar cálculos recursivos, para realizar agregação dinâmica e para cálculos que utilizam inteligência de tempo.

Neste capítulo, você aprenderá sobre as funções suportadas na linguagem DAX. Para obter mais informações sobre o uso dessas funções DAX, consulte o tutorial - Funções DAX nesta biblioteca de tutoriais.

O que é uma função DAX?

Uma função DAX é uma função incorporada fornecida na linguagem DAX para permitir que você execute várias ações nos dados nas tabelas em seu Modelo de Dados. Conforme discutido anteriormente, o DAX é usado para fins de análise de dados e inteligência de negócios que requerem suporte para extrair, assimilar e derivar percepções dos dados. As funções DAX baseadas no modelo de dados fornecem esses utilitários que tornam seu trabalho mais simples, uma vez que você domina a linguagem DAX e o uso das funções DAX.

Funções do Excel vs. funções DAX

Existem certas semelhanças entre as funções do Excel que você conhece e as funções DAX. No entanto, também existem algumas diferenças. Você precisa obter uma clareza sobre eles, para evitar cometer erros no uso de funções DAX e ao escrever fórmulas DAX que incluem funções DAX.

Semelhanças entre funções do Excel e funções DAX

  • Muitas funções DAX têm o mesmo nome e o mesmo comportamento geral das funções do Excel.

  • O DAX tem funções de pesquisa semelhantes às funções de pesquisa de vetor e matriz do Excel.

Diferenças entre funções do Excel e funções DAX

  • As funções DAX foram modificadas para aceitar diferentes tipos de entradas e algumas das funções DAX podem retornar um tipo de dados diferente. Portanto, você precisa entender o uso dessas funções separadamente, embora tenham o mesmo nome. Neste tutorial, você encontrará todas as funções DAX prefixadas com DAX para evitar confusão com as funções do Excel.

  • Você não pode usar funções DAX em uma fórmula do Excel ou usar fórmulas / funções do Excel em DAX, sem as modificações necessárias.

  • As funções do Excel usam uma referência de célula ou um intervalo de células como referência. As funções DAX nunca tomam uma referência de célula ou um intervalo de células como referência, mas, em vez disso, tomam uma coluna ou tabela como referência.

  • As funções de data e hora do Excel retornam um número inteiro que representa uma data como um número de série. As funções de data e hora DAX retornam um tipo de dados datetime que está no DAX, mas não no Excel.

  • O Excel não tem funções que retornam uma tabela, mas algumas funções podem funcionar com matrizes. Muitas das funções DAX podem facilmente fazer referência a tabelas e colunas completas para realizar cálculos e retornar uma tabela ou coluna de valores. Essa capacidade de DAX adiciona energia ao Power Pivot, Power View e Power BI, onde DAX é usado.

  • As funções de pesquisa DAX exigem que um relacionamento seja estabelecido entre as tabelas.

  • O Excel oferece suporte a tipos de dados variantes em uma coluna de dados, ou seja, você pode ter dados de diferentes tipos de dados em uma coluna. Enquanto o DAX espera que os dados em uma coluna de uma tabela sejam sempre do mesmo tipo de dados. Se os dados não forem do mesmo tipo, DAX altera a coluna inteira para o tipo de dados que melhor acomoda todos os valores na coluna. No entanto, se os dados forem importados e esse problema surgir, o DAX pode sinalizar um erro.

Para saber mais sobre os tipos de dados DAX e conversão de tipo de dados, consulte o capítulo - Referência de sintaxe DAX.

Tipos de funções DAX

DAX oferece suporte aos seguintes tipos de funções.

  • Funções com valor de tabela DAX
    • Funções de filtro DAX
    • Funções de agregação DAX
    • Funções DAX Time Intelligence
  • Funções de data e hora DAX
  • Funções de informação DAX
  • Funções lógicas DAX
  • Funções DAX Math e Trig
  • Outras funções DAX
  • Funções DAX pai e filho
  • Funções estatísticas DAX
  • Funções de texto DAX

Nesta seção, você aprenderá sobre as funções DAX no nível da categoria de funções. Para obter detalhes sobre a sintaxe da função DAX e o que a função DAX retorna e faz - consulte o tutorial Funções DAX nesta biblioteca de tutoriais.

As funções de inteligência de tempo DAX e funções de filtro DAX são poderosas e requerem uma menção especial. Consulte os capítulos - Compreendendo as funções DAX Time Intelligence e DAX Filter para obter detalhes.

Funções com valor de tabela DAX

Muitas funções DAX usam tabelas como tabelas de entrada ou saída, ou ambas. Essas funções DAX são chamadas de funções com valor de tabela DAX. Como uma tabela pode ter uma única coluna, as funções com valor de tabela DAX também usam colunas únicas como entradas. Você tem os seguintes tipos de funções com valor de tabela DAX -

  • Funções de agregação DAX
  • Funções de filtro DAX
  • Funções de inteligência de tempo DAX

Compreender as funções com valor de tabela DAX ajuda você a escrever fórmulas DAX de maneira eficaz.

Funções de agregação DAX

As funções de agregação DAX agregam qualquer expressão nas linhas de uma tabela e são úteis em cálculos.

A seguir estão algumas funções de agregação DAX -

  • ADDCOLUMNS (<table>, <name>, <expression>, [<name>, <expression>] ...)

  • AVERAGE (<coluna>)

  • AVERAGEA (<coluna>)

  • AVERAGEX (<table>, <expression>)

  • COUNT (<coluna>)

  • CONT.valores (<coluna>)

  • CONT.valor (<tabela>, <expressão>)

  • CONTAR EM BRANCO (<coluna>)

  • CONTAS (<tabela>)

  • COUNTX (<table>, <expression>)

  • CROSSJOIN (<tabela1>, <tabela2>, [<tabela3>] ...)

  • DISTINCTCOUNT (<coluna>)

  • GERAR (<tabela1>, <tabela2>)

  • GENERATEALL (<tabela1>, <tabela2>)

  • MAX (<coluna>)

  • MAXA (<coluna>)

  • MAXX (<tabela>, <expressão>)

  • MIN (<coluna>)

  • MINA (<coluna>)

  • MINX (<table>, <expression>)

  • PRODUTO (<coluna>)

  • PRODUCTX (<table>, <expression>)

  • ROW (<nome>, <expressão>, [<nome>, <expressão>] ...)

  • SELECTCOLUMNS (<table>, <name>, <scalar_expression>,

  • [<nome>, <expressão_escalar>] ...)

  • SUM (<coluna>)

  • RESUMA (<table>, <groupBy_columnName>, [<groupBy_columnName>]…, [<name>, <expression>]…)

  • SUMX (<tabela>, <expressão>)

  • TOPN (<n_value>, <table>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…)

Funções de filtro DAX

As funções de filtro DAX retornam uma coluna, uma tabela ou valores relacionados à linha atual. Você pode usar funções de filtro DAX para retornar tipos de dados específicos, pesquisar valores em tabelas relacionadas e filtrar por valores relacionados. As funções DAX Lookup funcionam usando tabelas e relacionamentos entre elas. As funções de filtro DAX permitem que você manipule o contexto de dados para criar cálculos dinâmicos.

A seguir estão algumas funções do filtro DAX -

  • ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>] ..., <table>, <groupingColumn>, [<groupingColumn>] ... [filterTable] ...)

  • TODOS ({<table> | <coluna>, [<coluna>], [<coluna>]…})

  • ALLEXCEPT (<table>, <column>, [<column>]…)

  • ALLNOBLANKROW(<table>|<column>)

  • ALLSELECTED ([<tableName> | <columnName>])

  • CALCULAR (<expressão>, <filtro1>, <filtro2> ...)

  • CALCULATETABLE (<expression>, <filter1>, <filter2>…)

  • CROSSFILTER (<columnName1>, <columnName2>, <direction>)

  • DISTINCT (<coluna>)

  • ANTES (<coluna>, <número>)

  • EARLIEST(<column>)

  • FILTER(<table>,<filter>)

  • FILTERS(<columnName>)

  • HASONEFILTER(<columnName>)

  • HASONEVALUE(<columnName>)

  • ISCROSSFILTERED (<columnName>)

  • ISFILTERED (<columnName>)

  • KEEPFILTERS (<expressão>)

  • RELATED(<column>)

  • RELATEDTABLE(<tableName>)

  • SUBSTITUTEWITHINDEX (<table>, <indexColumnName>, <indexColumnsTable>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…])

  • USERELATIONSHIP(<columnName1>,<columnName2>)

  • VALUES(<TableNameOrColumnName>)

Funções DAX Time Intelligence

As funções DAX Time Intelligence retornam uma tabela de datas ou usam uma tabela de datas para calcular uma agregação. Essas funções DAX ajudam a criar cálculos que suportam as necessidades de análise de Business Intelligence, permitindo que você manipule dados usando períodos de tempo, incluindo dias, meses, trimestres e anos.

A seguir estão algumas funções do DAX Time Intelligence -

  • CLOSINGBALANCEMONTH (<expression>, <dates> [, <filter>])

  • CLOSINGBALANCEQUARTER (<expression>, <dates>, [<filter>])

  • CLOSINGBALANCEYEAR (<expression>, <dates>, [<filter>], [<year_end_date>])

  • DATEADD (<dates>, <number_of_intervals>, <interval>)

  • DATESBETWEEN (<dates>, <start_date>, <end_date>)

  • DATESINPERIOD (<dates>, <start_date>, <number_of_intervals>, <interval>)

  • DATESMTD (<dates>)

  • DATESQTD (<dates>)

  • DATESYTD (<dates>, [<year_end_date>])

  • ENDOFMONTH (<datas>)

  • ENDOFQUARTER (<datas>)

  • ENDOFYEAR (<dates>, [<year_end_date>])

  • FIRSTDATE (<dates>)

  • FIRSTNONBLANK (<coluna>, <expressão>)

  • ÚLTIMA DATA (<datas>)

  • LASTNONBLANK (<coluna>, <expressão>)

  • NEXTDAY (<dates>)

  • PRÓXIMO MÊS (<datas>)

  • NEXTQUARTER (<datas>)

  • NEXTYEAR (<dates>, [<year_end_date>])

  • OPENINGBALANCEMONTH (<expression>, <dates>, [<filter>])

  • OPENINGBALANCEQUARTER (<expressão>, <datas>, [<filtro>])

  • OPENINGBALANCEYEAR (<expression>, <dates>, [<filter>], [<year_end_date>])

  • PARALLELPERIOD (<dates>, <number_of_intervals>, <interval>)

  • PREVIOUSDAY(<dates>)

  • PREVIOUSMONTH(<dates>)

  • PREVIOUSQUARTER(<dates>)

  • ANTERIOR (<datas>, [<year_end_data_de_final>])

  • SAMEPERIODLASTYEAR(<dates>)

  • STARTOFMONTH(<dates>)

  • STARTOFQUARTER(<dates>)

  • STARTOFYEAR(<dates>)

  • TOTALMTD (<expressão>, <datas>, [<filtro>])

  • TOTALQTD (<expressão>, <datas>, [<filtro>])

  • TOTALYTD (<expression>, <dates>, [<filter>], [<year_end_date>])

Funções de data e hora DAX

As funções de data e hora DAX são semelhantes às funções de data e hora do Excel. No entanto, as funções DAX Date e Time são baseadas no tipo de dados datetime de DAX.

A seguir estão as funções DAX Data e Hora -

  • DATA (<ano>, <mês>, <dia>)
  • DATEVALUE(date_text)
  • DAY(<date>)
  • EDATE (<start_date>, <months>)
  • EOMONTH (<start_date>, <months>)
  • HOUR(<datetime>)
  • MINUTE(<datetime>)
  • MONTH(<datetime>)
  • NOW()
  • SECOND(<time>)
  • TIME (hora, minuto, segundo)
  • TIMEVALUE(time_text)
  • TODAY()
  • WEEKDAY (<data>, <return_type>)
  • WEEKNUM (<data>, <return_type>)
  • YEAR(<date>)
  • YEARFRAC (<start_date>, <end_date>, <basis>)

Funções de informação DAX

As funções de informações DAX examinam a célula ou linha fornecida como argumento e informam se o valor corresponde ao tipo esperado.

A seguir estão algumas funções de informações DAX -

  • CONTAINS (<table>, <columnName>, <value>, [<columnName>, <value>]…)

  • CUSTOMDATA()

  • ISBLANK(<value>)

  • ISERROR(<value>)

  • ISEVEN(number)

  • ISLOGICAL(<value>)

  • ISNONTEXT(<value>)

  • ISNUMBER(<value>)

  • ISONORAFTER (<expressão_escalar>, <expressão_escalar>, [ordem_dentro], [<expressão_escalar>, <expressão_escalar>, [ordem_de_classificação]]…)

  • ISTEXT(<value>)

  • LOOKUPVALUE (<result_columnName>, <search_columnName>, <search_value>, [<search_columnName>, <search_value>]…)

  • USERNAME()

Funções lógicas DAX

As funções lógicas DAX retornam informações sobre os valores em uma expressão. Por exemplo, a função DAX TRUE permite saber se uma expressão que você está avaliando retorna um valor TRUE.

A seguir estão as funções lógicas DAX -

  • AND(<logical1>,<logical2>)
  • FALSE()
  • IF (teste_lógico>, <valor_se_verdadeiro>, valor_se_falso)
  • IFERROR (valor, valor_se_erro)
  • NOT(<logical>)
  • OR(<logical1>,<logical2>)
  • SWITCH (<expressão>, <valor>, <resultado>, [<valor>, <resultado>]…, [<else>])
  • TRUE()

Funções DAX Math e Trig

As funções matemáticas e trigonométricas do DAX são muito semelhantes às funções matemáticas e trigonométricas do Excel.

A seguir estão algumas funções DAX Math e Trig -

  • ABS(<number>)
  • ACOS(number)
  • ACOSH(number)
  • ASIN(number)
  • ASINH(number)
  • ATAN(number)
  • ATANH(number)
  • TETO (<número>, <significância>)
  • COMBIN (número, número_escolhido)
  • COMBINA (número, número_escolhido)
  • COS(number)
  • COSH(number)
  • CURRENCY(<value>)
  • DEGREES(angle)
  • DIVIDE (<numerador>, <denominador>, [<alternateresult>])
  • EVEN(number)
  • EXP(<number>)
  • FACT(<number>)
  • FLOOR (<número>, <significância>)
  • GCD (número1, [número2], ...)
  • INT(<number>)
  • ISO.CEILING (<number>, [<significance>])
  • LCM (número1, [número2], ...)
  • LN(<number>)
  • LOG(<number>,<base>)
  • LOG10(<number>)
  • INT(<number>)
  • MROUND (<número>, <múltiplo>)
  • ODD(number)
  • PI()
  • POWER (<número>, <força>)
  • PRODUCT(<column>)
  • PRODUCTX (<table>, <expression>)
  • QUOTIENT (<numerador>, <denominador>)
  • RADIANS(angle)
  • RAND()
  • RANDBETWEEN(<bottom>,<top>)
  • ROUND (<number>, <num_digits>)
  • ROUNDDOWN (<number>, <num_digits>)
  • ROUNDUP (<number>, <num_digits>)
  • SIN(number)
  • SINH(number)
  • SIGN(<number>)
  • SQRT(<number>)
  • SUM(<column>)
  • SUMX (<tabela>, <expressão>)
  • TAN(number)
  • TANH(number)
  • TRUNC(<number>,<num_digits>)

Outras funções DAX

Essas funções DAX executam ações exclusivas que não podem ser definidas por nenhuma das categorias às quais a maioria das outras funções pertence.

A seguir estão algumas outras funções do DAX -

  • EXCEPT (<table_expression1>, <table_expression2>

  • GROUPBY (<table>, [<groupBy_columnName1>], [<name>, <expression>]…)

  • INTERSECT (<table_expression1>, <table_expression2>)

  • ISEMPTY(<table_expression>)

  • NATURALINNERJOIN (<leftJoinTable>, <rightJoinTable>)

  • NATURALLEFTOUTERJOIN (<leftJoinTable>, <rightJoinTable>)

  • SUMMARIZECOLUMNS (<groupBy_columnName>, [<groupBy_columnName>]…, [<filterTable>]…, [<name>, <expression>]…)

  • UNION (<table_expression1>, <table_expression2>, [<table_expression>]…)

  • VAR <nome> = <expressão>

Funções DAX pai e filho

As funções DAX pai e filho são úteis no gerenciamento de dados que são apresentados como uma hierarquia pai / filho no modelo de dados.

A seguir estão algumas funções pai e filho DAX -

  • PATH (<ID_columnName>, <parent_columnName>)
  • PATHCONTAINS (<caminho>, <item>)
  • PATHITEM (<caminho>, <posição>, [<tipo>])
  • PATHITEMREVERSE (<caminho>, <posição>, [<tipo>])
  • PATHLENGTH(<path>)

Funções estatísticas DAX

As funções estatísticas DAX são muito semelhantes às funções estatísticas do Excel.

A seguir estão algumas funções estatísticas DAX -

  • BETA.DIST (x, alfa, beta, cumulativo, [A], [B])

  • BETA.INV (probabilidade, alfa, beta, [A], [B])

  • CHISQ.INV (probabilidade, grau_liberdade)

  • CHISQ.INV.RT (probabilidade, grau_liberdade)

  • CONFIDENCE.NORM (alpha, standard_dev, size)

  • CONFIDENCE.T (alpha, standard_dev, size)

  • DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2 ..., {{Value1, Value2 ...}, {ValueN, ValueN + 1 ...} ...})

  • EXPON.DIST (x, lambda, cumulativo)

  • GEOMEAN(<column>)

  • GEOMEANX (<table>, <expression>)

  • MEDIAN(<column>)

  • MEDIANX (<tabela>, <expressão>)

  • PERCENTIL.EXC (<coluna>, <k>)

  • PERCENTIL.INC (<coluna>, <k>)

  • PERCENTILEX.EXC (<tabela>, <expressão>, k)

  • PERCENTILEX.EXC (<tabela>, <expressão>, k)

  • POISSON.DIST (x, média, cumulativa)

  • RANK.EQ (<valor>, <columnName> [, <order>])

  • RANKX (<table>, <expression> [, <value> [, <order> [, <ties>]]])

  • SAMPLE (<n_value>, <table>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…)

  • STDEV.P(<ColumnName>)

  • STDEV.S(<ColumnName>)

  • STDEVX.P (<tabela>, <expressão>)

  • STDEVX.S (<table>, <expression>)

  • SQRTPI(number)

  • VAR.P(<columnName>)

  • VAR.S(<columnName>)

  • VARX.P (<table>, <expression>)

  • VARX.S (<table>, <expression>)

  • XIRR (<table>, <values>, <dates>, [guess])

  • XNPV (<table>, <values>, <dates>, <rate>)

Funções de texto DAX

As funções de texto DAX funcionam com tabelas e colunas. Com as funções DAX Text, você pode retornar a parte de uma string, pesquisar texto dentro de uma string ou concatenar valores de string. Você também pode controlar os formatos de datas, horas e números.

A seguir estão algumas funções de texto DAX -

  • BLANK()
  • CODE(text)
  • CONCATENAR (<texto1>, <texto2>)
  • CONCATENATEX (<tabela>, <expressão>, [delimitador])
  • EXACT(<text1>,<text2>)
  • FIND (<find_text>, <within_text>, [<start_num>], [<NotFoundValue>])
  • CORRIGIDO (<number>, <decimals>, <no_commas>)
  • FORMAT (<valor>, <format_string>)
  • LEFT (<texto>, <num_chars>)
  • LEN(<text>)
  • LOWER(<text>)
  • MID (<text>, <start_num>, <num_chars>)
  • REPLACE (<old_text>, <start_num>, <num_chars>, <new_text>)
  • REPT (<text>, <num_times>)
  • DIREITO (<texto>, <num_chars>)
  • PESQUISA (<find_text>, <within_text>, [<start_num>], [<NotFoundValue>])
  • SUBSTITUIR (<texto>, <texto_antigo>, <novo_texto>, <núm_instância>)
  • TRIM(<text>)
  • SUPERIOR (<texto>)
  • VALUE(<text>)