Hoje o dataholic Rafael Barbosa vai te ajudar a entender de vez porque você tem valores “blank” no filtro do seu Dashboard no Power BI, usando advancend script no Tabular Editor. Boa leitura!

Problemas de relacionamento geram linhas em branco, isso acontece quando sua tabela fato possui registros que não existem na tabela de dimensão. O Power BI cria uma linha em branco e relaciona esses itens não entrados. Esse tipo de problema afeta na exibição dos dados e no desempenho do seu relatório como vocês pode ver no artigo do PHIL SEAMARK em Clean data = faster reports.
Então para resolver precisamos saber quais itens faltam na dimensão, para então adicioná-los. No entando, se você tiver 10 relacionamentos no seu modelo, será uma tarefa demorada, mas podemos utilizar o Tabular Editor para automatizar essa tarefa de forma simples.
Para isso vou utilizar o Advanced Script do Tabular Editor. Para montar essa solução eu peguei o script do Blog Elegant BI e incrementei um pouco mais o script que ele compartilhou, criando duas versões, mas antes vou ensinar como utilizar o Advanced Script do Tabular Editor.
Como rodar o script no Tabular Editor
1. Baixar e instalar o Tabular Editor.

2. Depois de instalado ele vai aparecer dentro do Power BI na aba “Ferramentas Externas”, ao clicar neste botão será aberto o Tabular Editor conectado no relatório atual.

3. Copie e cole o script dentro de Advanced Script.

4. Salve o script, para poder utilizar novamente depois.
4.1 Clique no botão “+”.
4.2 Informe o nome, você pode utilizar “\” barra para criar pastas para facilitar quando for chamar o script.
4.3 Escolha o contexto em que deve aparecer essa opção (neste caso marquei na opção “Model”).
4.4 Clique em OK.

6. Execute o Script clicando no play ou apertando F5.

7. Depois de salvo quando você precisar chamar o script novamente você pode acessar:
7.1 (Opção 1) - Clicando com o botão direito em cima do contexto escolhido, neste caso foi marcado “model” no item 5.

7.1 (Opção 2) Clicando em Samples.

Agora que você sabe como faz para executar o script, deu para ver que depois de configurar, a próxima vez será somente abrir o Tabular Editor e fazer o item 7.
Versão 1 - Encontrar linhas em branco resumo
O 1° Script é a versão resumida, ele tem o objetivo de trazer e identificar quais tabelas que estão com problema de relacionamento e identificar as colunas responsáveis.
Depois que você executar o script abaixo, ele vai retornar a essa janela com a relação dos problemas listados, só vai precisar clicar em “Copy to Clipboard”.

Depois é só colar em uma planilha do Excel, para ver o resultado como mostrado abaixo:

FromTable: Tabela que está sendo filtrada no relacionamento (tabela fato)
ToTable: Tabela que está filtrando no relacionamento (tabela dimensão)
BlankRowCount: Quantidade de linhas que a “FromTable” não entrou relacionamento direto com “ToTable”
FromTableColumn: Coluna de relacionamento da “FromTable”
ToTableColumn: Coluna de relacionamento da “ToTable”
DAX_Table: Medida DAX para criar uma tabela com a lista de itens que faltam na tabela dimensão para resolver o problema de relacionamento.
Encontrar linhas em branco resumo
foreach (var rin Model.Relationships.ToList())
{
bool act = r.IsActive;
string fromTable = r.FromTable.Name;
string toTable = r.ToTable.Name;
string fromTableFull = r.FromTable.DaxObjectFullName;
string fromObject = r.FromColumn.DaxObjectFullName;
string toObject = r.ToColumn.DaxObjectFullName;
string dax;
string DAX_Table;
if (act)
{
dax ="SUMMARIZECOLUMNS(\"test\",CALCULATE(COUNTROWS("+fromTableFull+"),ISBLANK("+toObject+")))";
DAX_Table ="SUMMARIZECOLUMNS("+fromObject+",\"Inserir "+toObject+"\",CALCULATE(COUNTROWS("+fromTableFull+"),ISBLANK("+toObject+")))";
}
else
{
dax ="SUMMARIZECOLUMNS(\"test\",CALCULATE(COUNTROWS("+fromTableFull+"),USERELATIONSHIP("+fromObject+","+toObject+"),ISBLANK("+toObject+")))";
DAX_Table ="SUMMARIZECOLUMNS("+fromObject+",\"Inserir "+toObject+"\",CALCULATE(COUNTROWS("+fromTableFull+"),USERELATIONSHIP("+fromObject+","+toObject+"),ISBLANK("+toObject+")))";
}
var daxResult = EvaluateDax(DAX_Table);
string blankRowCount = EvaluateDax(dax).ToString();
if (blankRowCount !="Table" )
{
daxResult.Output();
}
}
Depois de executar é só copiar e colar no Excel: