-
Total de itens
582 -
Registro em
-
Última visita
Tipo de Conteúdo
Perfis
Fóruns
Desafios
Calendário
Downloads
Galeria
Posts postados por Alex Pereira
-
-
2 minutos atrás, Mario Erico Da Silva disse:
No Power BI online, ao gerar um link público para acesso ao painel, tenho como resultado a seguinte mensagem de erro:
"Algo não deu certo
ServerError_rsCannotRetrieveModel
Tente novamente mais tarde ou entre em contato com o suporte. Se você entrar em contato com o suporte, forneça esses detalhes."Detalhe:
ID da atividade: e61bbd0d-7a76-4b1d-9592-63ed394c73d7
Solicitar ID: 83841064-9a82-8b8d-a4db-ec4d91d74cc9
ID de correlação: fd7faa2a-bc36-0134-b46f-72762675e7fd
Hora: Wed Sep 18 2024 09:32:07 GMT-0300 (Horário Padrão de Brasília)
Versão do serviço: 13.0.24209.56
Versão do Cliente: 2409.2.20860-train
Cluster URI: https://wabi-brazil-south-b-primary-api.analysis.windows.net/
ID da atividade: e61bbd0d-7a76-4b1d-9592-63ed394c73d7
Solicitar ID: 83841064-9a82-8b8d-a4db-ec4d91d74cc9
Hora: Wed Sep 18 2024 09:32:07 GMT-0300 (Horário Padrão de Brasília)
Versão do serviço: 13.0.24209.56
Versão do Cliente: 2409.2.20860-train
Cluster URI: https://wabi-brazil-south-b-primary-api.analysis.windows.net/Considerando que essa ocorrência, foi registrada em dois usuários distintos, em ambientes diferentes. O acesso ao painel, direto no workspace e na versão desktop, seguem normalmente. Houveram tentativas de republicação, sem sucesso na posterior geração dos links. Então, como seria possível identificar e superar essa dificuldade?
Considere:
1) O painel segue sendo atualizado normalmente, estão acessíveis de outras formas, exceto por links públicos que resultam no erro a partir de sua geração.2) Versões do painel anteriores ao problema, já foram re-publicados, juntamente com a mais recente versão disponível do Power BI Desktop (v.2.132.105.3.0 64-bit agosto de 2024), sem sucesso. Minha versão, no ambiente de produção, é a 2.128.1177.0 64-bit (abril de 2024).
Verifique com o administrador da conta se você tem permissão para gerar links públicos.
É importante ressaltar que gerar links públicos pode não ser seguro, pois isso permite que qualquer pessoa tenha acesso às informações contidas neles.
-
Então,existem várias razões pelas quais uma consulta SQL pode ser rápida no SSMS e mas lenta no Power BI. Uma das principais causas é o "query folding". O Power Query tenta converter as etapas de transformação em uma única consulta SQL para que o processamento seja feito no servidor de banco de dados, e não localmente. Se você realizar transformações no Power BI que não suportam o query folding, o Power BI pode estar trazendo grandes volumes de dados para aplicar as transformações localmente, o que aumenta o tempo de atualização. Para verificar se o query folding está ocorrendo, clique com o botão direito em cada etapa no Editor de Consultas e veja se a opção "Exibir Consulta Nativa" está disponível. Se não estiver, tente modificar ou reordenar as transformações para permitir o query folding.
Outra questão a considerar são as etapas adicionais no Power Query após a importação da consulta. Qualquer transformação adicional, como junções complexas, cálculos ou filtragens, pode adicionar sobrecarga e impactar o desempenho. É recomendável otimizar as etapas no Power Query e, sempre que possível, realizar transformações complexas diretamente na consulta SQL original.
A conectividade de rede de internet também pode influenciar no desempenho. A velocidade e a latência da rede entre o Power BI e o servidor SQL podem afetar significativamente o tempo de resposta.
-
11 horas atrás, edmar disse:
Tenta instalar na máquina onde está o gateway o npgsql.
https://github.com/npgsql/npgsql/archive/refs/tags/v4.0.14.zip
Só complementando a resposta do @edmar, você terá que instalar conforme está ma documentação microsoft para dar certo. Neste caso,
terá que instalar a versão 4.0.10 e na hora da instalação ficar atento as essas opções e deixar desse jeito que ta na imagem para instalar! Se não num da certo!
https://learn.microsoft.com/pt-br/power-query/connectors/postgresql
- 1
-
10 horas atrás, edmar disse:
Huuuum que legal no power automate consigo atualizar em horarios espificos fora do power bi?
-
Huuuuuuum agora entendi, obrigado @Edson Igari , se manja demais!
-
8 horas atrás, Edson Igari disse:
Funcionaria pq vc teria quatro telas (abaixo exemplo com duas que é como uso, porém o meu é usb pra mais uma única entrada hdmi. Enfim, se funciona com duas, funciona com três, quatro, cinco.... Outra coisa, ele é usb também. Inclusive, o que tenho é igual ao que você colocou no vídeo, que é uma única porta a mais. Pra ela não serve, pois precisa de quatro telas.
Minha dúvida é se, ao conectar o conversor, o notebook vai reconhecer as quatro telas de forma independente usando apenas um cabo HDMI. Pela minha lógica, o conversor simplesmente replicaria a imagem do cabo HDMI conectado ao notebook, e não sei se ele conseguiria identificar cada uma das TVs individualmente. Claro, isso é só uma teoria, porque não vi nenhum exemplo prático dessa situação com um conversor. Na maioria dos vídeos que assisti, o conversor parece apenas replicar a tela, e não sei se ele é capaz de fazer essa distinção entre as telas. Por isso sugiri aquele video que foi o que adptou mais da realidade dela, mas é uma questão de testar!
-
Eu vi sim @Edson Igari, mas acho que ela não entendeu! porque acredito que ela não saiba fazer isso ai mostrando de uma forma visual talvez fique mais simples! Vamos esperar para ver!
- 1
-
Seleciona a coluna e clique nessa opcao, desta forma removera todos os espaços a esquerda e a direita!
Feito isso tente alterar seus dados novamente!
-
@Keila Sanara Souza Lopesé importante você dar uma pesquisa antes de comprar qualquer dispositivo, que talvez não solucione sua necessidade!
-
14 minutos atrás, Edson Igari disse:
Sem wi-fi só se vc comprar um multiplicador de telas. Ai vc abre quatro navegadores e joga um em cada tela.
@Edson Igarisó não sei se o multiplicador de telas resolveria o problema dela que parece que o multiplicador de tela ele duplica a tela, ai teria ver se é possivel o multiplicador tela consegue colocar uma tela para cada tv. Eu sugeri o usb porque parece que nele você consegue fazer essa configuração!
-
neste video parece ter como fazer isso com adpatador usb para hdmi que talvez possa resolver seu problema@ -
Existem conversores que você consegue pegar um hdmi e duplicar a tela para várias tv's, agora não sei se você consegue dentro esse conversos definir qual tv vai ter tal dashboard!
-
Cleiton, nesse caso, você precisará combinar a coluna "cidade" com a coluna "data" para identificar se houve feriado específico na cidade da unidade de produção. Você pode criar ou utilizar uma tabela que contenha os feriados municipais de cada cidade. Assim, ao verificar a data de produção e a cidade, se ambas coincidirem com um feriado na tabela, você poderá marcar esse dia como feriado para a unidade localizada naquela cidade. Isso garante que cada unidade considere apenas os feriados que afetam sua própria produção.
obs.: Os dados em ambas tabelas tem que ser iguais!
Exemplo:
-
Da uma olhade nesse talvez te atenda melhor:
- 1
-
Veja esse video!
- 1
-
15 horas atrás, Lucas Denker disse:
Pior que essa foi uma das minhas tentativas mas por algum motivo ele não altera o gráfico da maneira que eu gostaria
Teria como disponabilizar um exemplo!
-
37 minutos atrás, Lucas Denker disse:
Boa tarde pessoal! Todos bem?
Venho com uma dúvida técnica sobre visualização de dados. Irei lhe passar o contexto do que tenho.
Contexto.:
Em meu relatório possuo uma página principal que contém filtros de ano, cliente e estado.
Ao clicar em um cliente abre a possibilidade de ir a uma página que faz o drill-trought dos dados. Nesta página possuo um gráfico mensal da quantidade de compras feita pelo cliente filtrado.
Problema.:
Meu problema é eu gostaria que em apenas nesse gráfico que tenho o filtro de ano e somente este filtro da página principal não afete este gráfico em específico.
Como faço para retirar especificamente deste gráfico o filtro do ano da página principal?
Pesquisei diversas alternativas e nenhuma funcionou.
Se alguem tiver passado por algo parecido ou sabe como resolver esta situação me ajude por favor!
Abraços e obrigado pela atenção.Você pode resolver isso diretamente nas suas medidas utilizando a função
ALL
ouREMOVEFILTERS
no DAX para ignorar o filtro de ano apenas para aquele visual específico. Assim, o filtro de ano não será aplicado ao gráfico.
EX:
Medida Sem Filtro de Ano = CALCULATE( [Sua Medida Original], ALL(Tabela[ColunaAno]) )
Dessa forma, o filtro de ano que vem da página principal não afetará o gráfico onde essa medida for utilizada, mas continuará funcionando normalmente para os outros visuais da página.
-
17 horas atrás, Henrique Marsal disse:
Peguei a aula e tentei adaptar o script que faz a atualização incremental dos dados no mysyql na API Movidesk no tipo oData. mas o script não lida com a alternativa de inserir novas colunas . eu preciso dar um drop no banco e reinserir os dados outra vez. Preciso de algum help para me ajudar o script a lidar com a opção de ao inserir novas colunas ele fazer att full da coluna nova e depois incremental normal.
Já tentei umas 200x com GPT mas na hora de rodar o script ele travava.
import requestsimport pandas as pdfrom dotenv import load_dotenvimport osimport timefrom sqlalchemy import (create_engine,MetaData,Table,Column,Integer,String,DECIMAL,DATETIME,inspect,text,)from sqlalchemy.exc import IntegrityErrorfrom datetime import datetime, timedelta# Carrega as variáveis de ambiente do arquivo .envload_dotenv()# Define a URL base da API Movidesk# Pega o token do arquivo .envtoken = os.getenv("API_TOKEN")# Função para chamar a API Movidesk e obter os dados paginadosdef chamar_api_movidesk(token, params=None😞lista_dados_todas_paginas = []skip = 0 # Controle de paginação, começa com 0top = 1000 # Número máximo de resultados por página# Configura parâmetros fixosif params is None:params = {}# Inclui o token e a paginação nos parâmetrosparams.update({"token": token, "$top": top, "$skip": skip})while True:response = requests.get(base_url, params=params)response_ajustado_json = response.json()# Verifica se a resposta contém dadosif isinstance(response_ajustado_json, list) and response_ajustado_json:lista_dados_todas_paginas.extend(response_ajustado_json)else:# Se a resposta for uma lista vazia, significa que não há mais páginasbreak# Atualiza o valor de skip para pegar a próxima páginaskip += topparams["$skip"] = skiptime.sleep(1) # Respeita o limite de requisições da APIreturn lista_dados_todas_paginas# Função para obter todos os tickets sem filtrodef chamar_api_inicial_completa():# Definindo campos de interesseparams = {"$select": "id,createdDate,lastUpdate,type,category,urgency,status,ownerTeam,serviceFull,resolvedIn,slaSolutionDate,slaRealResponseDate,slaResponseDate"}lista_dados_todas_paginas = chamar_api_movidesk(token, params)df = pd.DataFrame(lista_dados_todas_paginas)return df# Função para filtrar tickets criados nos últimos dois diasdef atualizar_dados_ultimos_dois_dias():dois_dias_atras = (datetime.now() - timedelta(days=2)).strftime("%Y-%m-%dT%H:%M:%SZ")# Definindo parâmetros com filtro de dataparams = {"$select": "id,createdDate,lastUpdate","$filter": f"createdDate ge {dois_dias_atras}",}lista_dados_todas_paginas = chamar_api_movidesk(token, params)df = pd.DataFrame(lista_dados_todas_paginas)return df# Converta as colunas de data para o formato aceito pelo MySQLdata_columns = ["createdDate", "lastUpdate"]# Conexão com o banco de dados MySQL - PUXANDO OS DADOS DO ARQUIVO .envdb_user = os.getenv("DB_USER") # Nome do usuário no MySQLdb_password = os.getenv("DB_PASSWORD") # Senha do MySQLdb_host = os.getenv("DB_HOST") # Host do banco de dadosdb_name = os.getenv("DB_NAME") # Nome do banco de dados# String de conexão com o banco de dados, passando as variáveis do .envengine = create_engine(f"mysql+pymysql://{db_user}:{db_password}@{db_host}/{db_name}")# Instanciando o objeto MetaData para criar a tabela no banco de dadosmetadata = MetaData()# Crie a tabela com todas as colunas necessárias e defina a chave primáriatickets_table = Table("tickets",metadata,Column("id", String(255), primary_key=True),Column("createdDate", DATETIME),Column("lastUpdate", DATETIME),)# Verifica se a tabela já existe no banco de dadosinspector = inspect(engine)if "tickets" in inspector.get_table_names():with engine.connect() as connection:result = connection.execute(text("SELECT COUNT(*) FROM tickets"))count = result.fetchone()[0]if count > 0:# Se a tabela tiver dados, atualiza os últimos dois diasdf_incremental = atualizar_dados_ultimos_dois_dias()if df_incremental.empty:print("Não há dados para atualizar.")else:# Converte as colunas de data para o formato corretofor col in data_columns:if col in df_incremental.columns:df_incremental[col] = pd.to_datetime(df_incremental[col]).dt.strftime("%Y-%m-%d %H:%M:%S")inseridos_com_sucesso = 0for index, row in df_incremental.iterrows():try:row.to_frame().T.to_sql("tickets", con=engine, if_exists="append", index=False)inseridos_com_sucesso += 1except IntegrityError:continue # Ignora duplicaçõesprint(f"Total de registros inseridos com sucesso: {inseridos_com_sucesso}")else:print("Tabela existente mas sem dados, realizando carga inicial completa.")df_inicial = chamar_api_inicial_completa()else:print("Tabela não existe, criando tabela e realizando carga inicial completa.")metadata.create_all(engine) # Cria a tabeladf_inicial = chamar_api_inicial_completa()# Verifica se df_inicial foi criado e insere dados no bancoif "df_inicial" in locals():for col in data_columns:if col in df_inicial.columns:df_inicial[col] = pd.to_datetime(df_inicial[col]).dt.strftime("%Y-%m-%d %H:%M:%S")inseridos_com_sucesso = 0for index, row in df_inicial.iterrows():try:row.to_frame().T.to_sql("tickets", con=engine, if_exists="append", index=False)inseridos_com_sucesso += 1except IntegrityError:continue # Ignora duplicaçõesprint(f"Total de registros inseridos com sucesso: {inseridos_com_sucesso}")Para resolver o problema de lidar com a inserção de novas colunas sem precisar fazer um drop na tabela, você pode seguir uma abordagem onde o script verifica quais colunas existem no banco de dados e compara com as colunas da API. Se houver novas colunas, ele faz uma atualização full para essas colunas e continua com o processo incremental. Além disso, caso alguma coluna não venha mais da API, o script emite um alerta.
Exemplo sugirido pelo nosso amigo GPT:
import requests import pandas as pd from dotenv import load_dotenv import os import time from sqlalchemy import create_engine, inspect, text from sqlalchemy.exc import IntegrityError from datetime import datetime, timedelta # Carrega as variáveis de ambiente do arquivo .env load_dotenv() # Define a URL base da API Movidesk base_url = "https://api.movidesk.com/public/v1/tickets/past" token = os.getenv("API_TOKEN") # Função para chamar a API Movidesk e obter os dados paginados def chamar_api_movidesk(token, params=None): lista_dados_todas_paginas = [] skip = 0 top = 1000 if params is None: params = {} params.update({"token": token, "$top": top, "$skip": skip}) while True: response = requests.get(base_url, params=params) response_ajustado_json = response.json() if isinstance(response_ajustado_json, list) and response_ajustado_json: lista_dados_todas_paginas.extend(response_ajustado_json) else: break skip += top params["$skip"] = skip time.sleep(1) return lista_dados_todas_paginas # Função para comparar colunas entre o banco de dados e a API def verificar_novas_colunas(api_columns, db_columns): novas_colunas = [col for col in api_columns if col not in db_columns] colunas_faltantes = [col for col in db_columns if col not in api_columns] return novas_colunas, colunas_faltantes # Função para obter as colunas atuais da tabela do banco def get_db_columns(engine, tabela): inspector = inspect(engine) return [col["name"] for col in inspector.get_columns(tabela)] # Função para atualizar os últimos dois dias def atualizar_dados_ultimos_dois_dias(): dois_dias_atras = (datetime.now() - timedelta(days=2)).strftime("%Y-%m-%dT%H:%M:%SZ") params = {"$select": "id,createdDate,lastUpdate", "$filter": f"createdDate ge {dois_dias_atras}"} lista_dados_todas_paginas = chamar_api_movidesk(token, params) return pd.DataFrame(lista_dados_todas_paginas) # Conexão com o banco de dados MySQL db_user = os.getenv("DB_USER") db_password = os.getenv("DB_PASSWORD") db_host = os.getenv("DB_HOST") db_name = os.getenv("DB_NAME") engine = create_engine(f"mysql+pymysql://{db_user}:{db_password}@{db_host}/{db_name}") # Pega os dados da API df_api = chamar_api_movidesk(token) api_columns = df_api.columns.tolist() # Verifica se a tabela já existe no banco if "tickets" in inspect(engine).get_table_names(): db_columns = get_db_columns(engine, "tickets") novas_colunas, colunas_faltantes = verificar_novas_colunas(api_columns, db_columns) if novas_colunas: print(f"Novas colunas detectadas: {novas_colunas}. Realizando atualização completa.") # Código para lidar com a inserção completa dessas colunas df_api[novas_colunas].to_sql('tickets', con=engine, if_exists='replace', index=False) else: print("Nenhuma nova coluna detectada, realizando atualização incremental.") df_incremental = atualizar_dados_ultimos_dois_dias() df_incremental.to_sql('tickets', con=engine, if_exists='append', index=False) if colunas_faltantes: print(f"Alerta: As seguintes colunas estão ausentes da API: {colunas_faltantes}") else: print("Tabela 'tickets' não existe, criando e realizando carga completa.") df_api.to_sql('tickets', con=engine, if_exists='replace', index=False)
Espero ter ajudado!
-
1 hora atrás, Alex Pereira disse:
Bom dia!
O problema que você está enfrentando é que algumas operações realizadas no Power Query podem fazer com que a opção de native query (consulta nativa) não esteja disponível. Para evitar esse problema, recomendo que você faça o máximo possível do trabalho diretamente em SQL antes de importar os dados para o Power Query.
Eu costumo criar a consulta SQL com todos os parâmetros e ajustes necessários desde o início. Isso facilita a chamada e evita problemas com a opção de native query.
Segue exemplo:
let strRangeStart = DateTime.ToText(RangeStart,[Format="yyyy-MM-dd HH:mm:ss", Culture="en-US"]), strRangeEnd = DateTime.ToText(RangeEnd,[Format="yyyy-MM-dd HH:mm:ss", Culture="en-US"]), Query = " SELECT sub.sk_ctrc AS sk_ctrc, sub.dia_inclusao_ocor, sub.usuario_ocor, sub.unid_ocor, sub.cod_ocor FROM dw.fato_ocorrencias sub WHERE sub.emissao_ctrc >= '" & strRangeStart & "' AND sub.emissao_ctrc < '" & strRangeEnd & "') ", Fonte = MySQL.Database("SEU IP", "DATABASE", [ReturnSingleDatabase=true, Query=Query]) in Fonte
Como já estou montando as consultas antecipadamente, isso garante que, ao puxar os dados do banco, o processamento será otimizado ao máximo, mesmo que o Direct Query esteja desativado. Enfim, está foi a solução que encontreii!
-
8 horas atrás, Henrik Oliveira Paes disse:
Olá pessoal!
Estou com problemas ao tentar fazer a atualização incremental em um banco de dados MySQL conectado via ODBC x64 MySQL 8.3 Unicode.
Acontece que, ao definir o RangeStart e RangeEnd, quando vou aplicar a atualização incremental no Front-end do BI, ele me apresenta a seguinte mensagem: Unable to M query can be folded. incremental refresh can't be suggested for non-foldable queries.
Até encontrei um vídeo no YouTube watch?v=QEFze-LdLqo onde é falado que dependendo das etapas aplicadas no Power Query, pode-se perder a instancia de "View Native Query". O que poderia explicar essa mensagem acima. Mas praticamente qualquer etapa, seja de mudar tipo de dados, fazer split de coluna ou só duplicar uma coluna já faz sumir essa "View Native Query".
Segue abaixo o print de uma das tabelas que tenho no Power Query com alguns tratamentos, onde já se "perdeu" essa possibilidade de incrementar dados:
Alguém já passou por isso? Porque eu acredito que é quase inviável fazer todas as transformações de dados no Banco SQL antes de trazer os dados para o Power BI.
Será que não tem uma outra opção de ativar essa atualização incremental e manter as etapas de transformação aplicadas?
No meu caso, o que acontece: O Power BI apresenta aquela mensagem em amarelo, e quando estou no Power BI Serviço ele simplesmente atualiza o banco todo como se não existisse os parâmetros de RangeStart e RangeEnd.
Bom dia!
O problema que você está enfrentando é que algumas operações realizadas no Power Query podem fazer com que a opção de native query (consulta nativa) não esteja disponível. Para evitar esse problema, recomendo que você faça o máximo possível do trabalho diretamente em SQL antes de importar os dados para o Power Query.
Eu costumo criar a consulta SQL com todos os parâmetros e ajustes necessários desde o início. Isso facilita a chamada e evita problemas com a opção de native query.
Segue exemplo:
let strRangeStart = DateTime.ToText(RangeStart,[Format="yyyy-MM-dd HH:mm:ss", Culture="en-US"]), strRangeEnd = DateTime.ToText(RangeEnd,[Format="yyyy-MM-dd HH:mm:ss", Culture="en-US"]), Query = " SELECT sub.sk_ctrc AS sk_ctrc, sub.dia_inclusao_ocor, sub.usuario_ocor, sub.unid_ocor, sub.cod_ocor FROM dw.fato_ocorrencias sub WHERE sub.emissao_ctrc >= '" & strRangeStart & "' AND sub.emissao_ctrc < '" & strRangeEnd & "') ", Fonte = MySQL.Database("SEU IP", "DATABASE", [ReturnSingleDatabase=true, Query=Query]) in Fonte
-
1 hora atrás, Maite Aronchi Cruz disse:
Olá pessoal,
Quero criar um fluxo no Power automate, para emitir um alerta quando uma coluna de uma planilha de excel, localizada em uma pasta do Sharepoint, é alterada.
Porém, não encontrei nenhum gatilho específico para que apenas quando a coluna for alterada ele dispare, somente se o arquivo for modificado. Para mim não importa se tiver outras modificações na planilha, somente nesta coluna.
Alguém poderia me ajudar?
Obrigada!
Veja esse video:
- 1
-
Booom diaaa verifique se você tem esse instalador no ambiente onde seu gateway está instalado!
Aqui documentação explica como instalar:
https://learn.microsoft.com/pt-br/power-bi/consumer/mobile/mobile-windows-10-phone-app-webview2-installation
Aqui está uma resalta!
-
Em 07/09/2024 em 18:14, brunobda disse:
Era isso, gente! Gratidão!
Favor marcar a resposta que mais te ajudou ! 😄
-
7 horas atrás, Caio Veiga disse:
pessoal,boa noite.To tentando rodar esse codigo pra criar uma coluna que tenha 4 valores possiveis:"Trimestre Atual","Trimestre passado","Mesmo Trimestre no ano passado" e "Outros"
o codigo:if [Ano] = List.Max(dCalendario[Ano]) and [Trimestre] = List.Max(dCalendario[Trimestre]) then "Trimestre Atual" else if [Ano] = List.Max(dCalendario[Ano]) and [Trimestre] = List.Max(dCalendario[Trimestre])-1 then "Trimestre Anterior" else if [Ano] = List.Max(dCalendario[Ano])-1 and [Trimestre] = List.Max(dCalendario[Trimestre]) then "T. Ano Passado" else "Outros" O que eu to fazendo de errado pra dar o seguinte erro:Expression.Error: Uma referência cíclica foi encontrada durante a avaliaçãoEsse erro de referência cíclica acontece porque você está tentando calcular o valor máximo de
dCalendario[Ano]
edCalendario[Trimestre]
dentro de uma fórmula que está, ao mesmo tempo, sendo aplicada à própria tabeladCalendario. Você pode tentar colocando em uma variável separada:
let AnoMax = List.Max(dCalendario[Ano]), TrimestreMax = List.Max(dCalendario[Trimestre]), AdicionarColuna = Table.AddColumn(dCalendario, "Período", each if [Ano] = AnoMax and [Trimestre] = TrimestreMax then "Trimestre Atual" else if [Ano] = AnoMax and [Trimestre] = TrimestreMax - 1 then "Trimestre Anterior" else if [Ano] = AnoMax - 1 and [Trimestre] = TrimestreMax then "T. Ano Passado" else "Outros" ) in AdicionarColuna
Obs.: A ooutra solução que dei é mais recomendada!
Erro na geração de links Públicos, no Power Bi Online: ServerError_rsCannotRetrieveModel
em Power BI online (serviço)
Postado
Só complementando verifique se está opção está marcada: