- 22 Jun 2020 às 15:22
#56320
Boa Tarde,
Estou com o seguinte problema: Dentro de meu relatório eu analiso a evolução e comportamento da base acionária da minha empresa. Semanalmente importo um arquivo em .csv com todas as informações dos atuais acionistas da empresa (Nome, CPF/CNPJ, Qtd. de ações detidas, Telefone, Endereço, Profissão, Dt de nascimento e etc.) e salvo numa pasta com o nome do arquivo sendo a Data que a base se refere (por exemplo, "22.06.2020.csv").
Qual estratégia eu adotei, eu mando importar a pasta para o Editor de consultas e de lá eu criei uma "Fato Base Acionária" aonde eu exclui todas as colunas que descrevem a pessoa e só mantive o CPF/CNPJ, a Qtd de Ações e Data.
Numa outra consulta eu fiz uma "Dimensão Acionistas" onde eu removo a data e a Qtd de ações e removo os CPF/CNPJs duplicados tendo assim uma base com O Nome, Endereço, Profissão e etc. de cada acionista e vinculo as tabelas pelo CPF/CNPJ que é a Chave Primária.
O problema ocorre que quando coloco um novo arquivo .csv na pasta e clico em atualizar o Power BI Desktop... Aparentemente carrega a pasta duas vezes. Uma para a Tabela "Fato Base Acionária" e outra para a Tabela "Dimensão Acionistas" o que leva muuuuuito tempo já que existem váaaaaarios dias e arquivos .csv na pasta...
Vocês conhecem alguma estratégia que de para eu otimizar as atualizações?
Infelizmente, por razões obvias, não posso disponibilizar os arquivos aqui, mas deixo abaixo o meu Editor Avaçado para vocês entenderem as loucuras que eu já fiz nas tabelas (Talvez ajude...)
"Tabela Fato"
"Tabela Dimensão"
Obrigado!
Estou com o seguinte problema: Dentro de meu relatório eu analiso a evolução e comportamento da base acionária da minha empresa. Semanalmente importo um arquivo em .csv com todas as informações dos atuais acionistas da empresa (Nome, CPF/CNPJ, Qtd. de ações detidas, Telefone, Endereço, Profissão, Dt de nascimento e etc.) e salvo numa pasta com o nome do arquivo sendo a Data que a base se refere (por exemplo, "22.06.2020.csv").
Qual estratégia eu adotei, eu mando importar a pasta para o Editor de consultas e de lá eu criei uma "Fato Base Acionária" aonde eu exclui todas as colunas que descrevem a pessoa e só mantive o CPF/CNPJ, a Qtd de Ações e Data.
Numa outra consulta eu fiz uma "Dimensão Acionistas" onde eu removo a data e a Qtd de ações e removo os CPF/CNPJs duplicados tendo assim uma base com O Nome, Endereço, Profissão e etc. de cada acionista e vinculo as tabelas pelo CPF/CNPJ que é a Chave Primária.
O problema ocorre que quando coloco um novo arquivo .csv na pasta e clico em atualizar o Power BI Desktop... Aparentemente carrega a pasta duas vezes. Uma para a Tabela "Fato Base Acionária" e outra para a Tabela "Dimensão Acionistas" o que leva muuuuuito tempo já que existem váaaaaarios dias e arquivos .csv na pasta...
Vocês conhecem alguma estratégia que de para eu otimizar as atualizações?
Infelizmente, por razões obvias, não posso disponibilizar os arquivos aqui, mas deixo abaixo o meu Editor Avaçado para vocês entenderem as loucuras que eu já fiz nas tabelas (Talvez ajude...)
"Tabela Fato"
Código: Selecionar todos
let
Fonte = Folder.Files(#"Local Base Acionária"),
#"Texto Inserido Antes do Delimitador" = Table.AddColumn(Fonte, "Texto Antes do Delimitador", each Text.BeforeDelimiter([Name], ".csv"), type text),
#"Tipo Alterado2" = Table.TransformColumnTypes(#"Texto Inserido Antes do Delimitador",{{"Texto Antes do Delimitador", type datetime}}),
#"Linhas Filtradas" = Table.SelectRows(#"Tipo Alterado2", each [Texto Antes do Delimitador] >= RangeStart and [Texto Antes do Delimitador] < RangeEnd),
#"Linhas Classificadas" = Table.Sort(#"Linhas Filtradas",{{"Date accessed", Order.Descending}}),
#"Arquivos Ocultos Filtrados1" = Table.SelectRows(#"Linhas Classificadas", each [Attributes]?[Hidden]? <> true),
#"Invocar Função Personalizada1" = Table.AddColumn(#"Arquivos Ocultos Filtrados1", "Transformar Arquivo (2)", each #"Transformar Arquivo (2)"([Content])),
#"Colunas Renomeadas1" = Table.RenameColumns(#"Invocar Função Personalizada1", {"Name", "Nome da Origem"}),
#"Outras Colunas Removidas1" = Table.SelectColumns(#"Colunas Renomeadas1", {"Nome da Origem", "Transformar Arquivo (2)"}),
Personalizar2 = #"Outras Colunas Removidas1",
#"Personalização Adicionada" = Table.AddColumn(Personalizar2, "Tabela.limpa", each let
limpar = Table.RemoveFirstN([#"Transformar Arquivo (2)"],1),
cabecalho = Table.PromoteHeaders(limpar)
in
cabecalho),
#"Colunas Removidas" = Table.RemoveColumns(#"Personalização Adicionada",{"Transformar Arquivo (2)"}),
#"Tabela.limpa Expandido" = Table.ExpandTableColumn(#"Colunas Removidas", "Tabela.limpa", {"NOME ACIONISTA", "EO", "BAIRRO", "CIDADE", "ES", "CEP", "PAI", "P", "DT.NASC.", "S", "ATIVIDADE", "CPF/CNPJ"}, {"NOME ACIONISTA", "EO", "BAIRRO", "CIDADE", "ES", "CEP", "PAI", "P", "DT.NASC.", "S", "ATIVIDADE", "CPF/CNPJ"}),
#"Primeiros caracteres extraídos" = Table.TransformColumns(#"Tabela.limpa Expandido", {{"Nome da Origem", each Text.Start(_, 10), type text}}),
#"Colunas Renomeadas" = Table.RenameColumns(#"Primeiros caracteres extraídos",{{"Nome da Origem", "Data"}, {"NOME ACIONISTA", "Acionista"}, {"EO", "Ações"}, {"BAIRRO", "Bairro"}, {"CIDADE", "Cidade"}, {"ES", "Estado"}, {"PAI", "Pais"}, {"P", "Pessoa"}, {"DT.NASC.", "DataNascimento"}, {"S", "Sexo"}, {"ATIVIDADE", "Atividade"}}),
#"Personalização Adicionada1" = Table.AddColumn(#"Colunas Renomeadas", "CNPJ/CPF", each if [Pessoa]="F" then Text.End([#"CPF/CNPJ"],11) else Text.End([#"CPF/CNPJ"],14)),
#"Tipo Alterado1" = Table.TransformColumnTypes(#"Personalização Adicionada1",{{"CNPJ/CPF", type text}}),
TabelaBufferizada = Table.Buffer(#"Tipo Alterado1"),
#"Outras Colunas Removidas" = Table.SelectColumns(#"Tipo Alterado1",{"Data", "Ações", "CNPJ/CPF"}),
#"Colunas Reordenadas" = Table.ReorderColumns(#"Outras Colunas Removidas",{"Data", "CNPJ/CPF", "Ações"}),
#"Tipo Alterado" = Table.TransformColumnTypes(#"Colunas Reordenadas",{{"Data", type date}, {"CNPJ/CPF", type text}, {"Ações", Int64.Type}})
in
#"Tipo Alterado"
"Tabela Dimensão"
Código: Selecionar todos
let
Fonte = Folder.Files(#"Local Base Acionária"),
#"Texto Inserido Antes do Delimitador" = Table.AddColumn(Fonte, "Texto Antes do Delimitador", each Text.BeforeDelimiter([Name], ".csv"), type text),
#"Tipo Alterado4" = Table.TransformColumnTypes(#"Texto Inserido Antes do Delimitador",{{"Texto Antes do Delimitador", type datetime}}),
#"Linhas Filtradas1" = Table.SelectRows(#"Tipo Alterado4", each [Texto Antes do Delimitador] >= RangeStart and [Texto Antes do Delimitador] < RangeEnd),
#"Arquivos Ocultos Filtrados1" = Table.SelectRows(#"Linhas Filtradas1", each [Attributes]?[Hidden]? <> true),
#"Invocar Função Personalizada1" = Table.AddColumn(#"Arquivos Ocultos Filtrados1", "Transformar Arquivo (2)", each #"Transformar Arquivo (2)"([Content])),
#"Colunas Renomeadas1" = Table.RenameColumns(#"Invocar Função Personalizada1", {"Name", "Nome da Origem"}),
#"Outras Colunas Removidas1" = Table.SelectColumns(#"Colunas Renomeadas1", {"Nome da Origem", "Transformar Arquivo (2)"}),
#"Personalização Adicionada" = Table.AddColumn(#"Outras Colunas Removidas1", "Tabela.limpa", each let
limpar = Table.RemoveFirstN([#"Transformar Arquivo (2)"],1),
cabecalho = Table.PromoteHeaders(limpar)
in
cabecalho),
#"Colunas Removidas" = Table.RemoveColumns(#"Personalização Adicionada",{"Transformar Arquivo (2)"}),
#"Tabela.limpa Expandido" = Table.ExpandTableColumn(#"Colunas Removidas", "Tabela.limpa", {"NOME ACIONISTA", "EO", "BAIRRO", "CIDADE", "ES", "CEP", "PAI", "P", "DT.NASC.", "S", "ATIVIDADE", "CPF/CNPJ"}, {"NOME ACIONISTA", "EO", "BAIRRO", "CIDADE", "ES", "CEP", "PAI", "P", "DT.NASC.", "S", "ATIVIDADE", "CPF/CNPJ"}),
#"Primeiros caracteres extraídos" = Table.TransformColumns(#"Tabela.limpa Expandido", {{"Nome da Origem", each Text.Start(_, 10), type text}}),
#"Colunas Renomeadas" = Table.RenameColumns(#"Primeiros caracteres extraídos",{{"Nome da Origem", "Data"}, {"NOME ACIONISTA", "Acionista"}, {"EO", "Ações"}, {"BAIRRO", "Bairro"}, {"CIDADE", "Cidade"}, {"ES", "Estado"}, {"PAI", "Pais"}, {"P", "Pessoa"}, {"DT.NASC.", "DataNascimento"}, {"S", "Sexo"}, {"ATIVIDADE", "Atividade"}}),
#"Personalização Adicionada4" = Table.AddColumn(#"Colunas Renomeadas", "CNPJ/CPF", each if [Pessoa]="F" then Text.End([#"CPF/CNPJ"],11) else Text.End([#"CPF/CNPJ"],14)),
#"Coluna Mesclada Inserida" = Table.AddColumn(#"Personalização Adicionada4", "Localização", each Text.Combine({[Bairro], [Cidade], [Estado], [Pais]}, ", "), type text),
#"Colunas Reordenadas" = Table.ReorderColumns(#"Coluna Mesclada Inserida",{"CNPJ/CPF", "Acionista", "Bairro", "Cidade", "Estado", "CEP", "Pais", "Pessoa", "DataNascimento", "Sexo", "Atividade", "Localização"}),
#"Tipo Alterado" = Table.TransformColumnTypes(#"Colunas Reordenadas",{{"Data", type date}, {"CPF/CNPJ", type text}, {"Ações", Int64.Type}, {"Acionista", type text}, {"Bairro", type text}, {"Cidade", type text}, {"Estado", type text}, {"CEP", type text}, {"Pais", type text}, {"Pessoa", type text}, {"DataNascimento", type date}, {"Sexo", type text}, {"Atividade", type text}, {"Localização", type text}, {"CNPJ/CPF", type text}}),
#"Colunas Removidas2" = Table.RemoveColumns(#"Tipo Alterado",{"CPF/CNPJ"}),
#"Início do Mês Calculado" = Table.TransformColumns(#"Colunas Removidas2",{{"Data", Date.StartOfMonth, type date}}),
#"Duplicatas Removidas1" = Table.Distinct(#"Início do Mês Calculado", {"Data", "CNPJ/CPF"}),
#"Linhas Agrupadas" = Table.Group(#"Duplicatas Removidas1", {"CNPJ/CPF", "Acionista", "Bairro", "Cidade", "Estado", "CEP", "Pais", "Pessoa", "DataNascimento", "Sexo", "Atividade", "Localização"}, {{"Tabela", each _, type table [Data=date, #"CNPJ/CPF"=text, Ações=number, Acionista=text, Bairro=text, Cidade=text, Estado=text, CEP=text, Pais=text, Pessoa=text, DataNascimento=date, Sexo=text, Atividade=text, Localização=text]}}),
#"Duplicatas Removidas" = Table.Distinct(#"Linhas Agrupadas", {"CNPJ/CPF"}),
#"Personalização Adicionada1" = Table.AddColumn(#"Duplicatas Removidas", "Max. acoes", each Table.Max([Tabela],"Ações")),
#"Max. acoes Expandido" = Table.ExpandRecordColumn(#"Personalização Adicionada1", "Max. acoes", {"Ações"}, {"Max. acoes.Ações"}),
#"Personalização Adicionada2" = Table.AddColumn(#"Max. acoes Expandido", "Meses ativo", each let
tabela = Table.Distinct([Tabela],"Data"),
contagem = Table.RowCount(tabela)
in
contagem),
#"Personalização Adicionada3" = Table.AddColumn(#"Personalização Adicionada2", "Mês entrada", each let
DataMin = Table.Min([Tabela],"Data")
in
DataMin),
#"Mês entrada Expandido" = Table.ExpandRecordColumn(#"Personalização Adicionada3", "Mês entrada", {"Data"}, {"Mês entrada.Data"}),
#"Colunas Removidas1" = Table.RemoveColumns(#"Mês entrada Expandido",{"Tabela"}),
#"Tipo Alterado1" = Table.TransformColumnTypes(#"Colunas Removidas1",{{"Max. acoes.Ações", Int64.Type}, {"Meses ativo", Int64.Type}, {"Mês entrada.Data", type date}}),
#"Ano Extraído" = Table.TransformColumns(#"Tipo Alterado1",{{"DataNascimento", Date.Year, Int64.Type}}),
#"Consultas Mescladas" = Table.NestedJoin(#"Ano Extraído", {"CNPJ/CPF"}, #"dPessoas Eztec", {"CNPJ/CPF"}, "dPessoas Eztec", JoinKind.LeftOuter),
#"dPessoas Eztec Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas", "dPessoas Eztec", {"Natureza", "Status"}, {"Natureza", "Status"}),
#"Valor Substituído" = Table.ReplaceValue(#"dPessoas Eztec Expandido","FUNCIONÁRIO","Free-float",Replacer.ReplaceText,{"Natureza"}),
#"Valor Substituído1" = Table.ReplaceValue(#"Valor Substituído",null,"Free-float",Replacer.ReplaceValue,{"Natureza"}),
#"Valor Substituído2" = Table.ReplaceValue(#"Valor Substituído1","CONTROLADOR","Controladores e Pessoas Relacionadas",Replacer.ReplaceText,{"Natureza"}),
#"Valor Substituído3" = Table.ReplaceValue(#"Valor Substituído2","PESSOA RELACIONADA","Controladores e Pessoas Relacionadas",Replacer.ReplaceText,{"Natureza"}),
#"Colunas Renomeadas2" = Table.RenameColumns(#"Valor Substituído3",{{"Status", "Status Empresa"}}),
#"Personalização Adicionada5" = Table.AddColumn(#"Colunas Renomeadas2", "Status Geral", each if [Natureza] = "Free-float" then
if [Pais] <> "BRA" then "Estrangeiro" else
if [Pessoa] = "J" then "Pessoa Jurídica" else "Pessoa Física"
else
if [Status Empresa] <> "GRUPO CONTROLADOR" then "Pessoa Física" else "Grupo Controlador"),
#"Tipo Alterado2" = Table.TransformColumnTypes(#"Personalização Adicionada5",{{"Status Geral", type text}}),
#"Consultas Mescladas1" = Table.NestedJoin(#"Tipo Alterado2", {"CNPJ/CPF"}, #"dFundos Nacionais", {"CNPJ"}, "dFundos Nacionais", JoinKind.LeftOuter),
#"dFundos Nacionais Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas1", "dFundos Nacionais", {"PL mais recente", "Gestora"}, {"PL mais recente", "Gestora"}),
#"Colunas Renomeadas3" = Table.RenameColumns(#"dFundos Nacionais Expandido",{{"Gestora", "Gestora Nacional"}, {"PL mais recente", "Patrim. Liq"}}),
ADDGestorInternacional = Table.AddColumn(#"Colunas Renomeadas3", "Gestora Internacional", each if Text.Contains([Acionista], "ACADIAN") then "Acadian" else if Text.Contains([Acionista], "AEGON") then "Aegon" else if Text.Contains([Acionista], "ALASKA") then "Alaska" else if Text.Contains([Acionista], "ALLIANZ") then "Allianz" else if Text.Contains([Acionista], "ALPINE") then "Alpine" else if Text.Contains([Acionista], "AMUNDI") then "Amundi" else if Text.Contains([Acionista], "ARROWSTREET") then "Arrowstreet" else if Text.Contains([Acionista], "ASHMORE") then "Ashmore" else if Text.Contains([Acionista], "AVIVA") then "Aviva" else if Text.Contains([Acionista], "AXA") then "Axa" else if Text.Contains([Acionista], "BAHIA") then "Bahia" else if Text.Contains([Acionista], "BARTHE HOLDINGS ") then "Constellation" else if Text.Contains([Acionista], "BEST INVESTMENT CORPORATION") then "Itaú Unibanco" else if Text.Contains([Acionista], "BANCHILE") then "Banchile" else if Text.Contains([Acionista], "BANK OF AMERICA") then "Bank of america" else if Text.Contains([Acionista], "BLACKROCK") then "Blackrock" else if Text.Contains([Acionista], "BNP") then "BNP" else if Text.Contains([Acionista], "BNY") then "BNY" else if Text.Contains([Acionista], "BRADESCO") then "Bradesco" else if Text.Contains([Acionista], "CANADIAN") then "Canadian" else if Text.Contains([Acionista], "CCL ") then "CCL" else if Text.Contains([Acionista], "CELFIN") then "Celfin" else if Text.Contains([Acionista], "CHEVRON") then "Chevron" else if Text.Contains([Acionista], "CITI ") then "Citibank" else if Text.Contains([Acionista], "CITIBANK") then "Citibank" else if Text.Contains([Acionista], "CITIGROUP") then "Citibank" else if Text.Contains([Acionista], "COMMONWEALTH") then "Ccommonwealth" else if Text.Contains([Acionista], "COMPASS") then "Compass" else if Text.Contains([Acionista], "CONTRARIAN ") then "Contrarian" else if Text.Contains([Acionista], "CREDIT ") then "Credit suisse" else if Text.Contains([Acionista], "DANSKE") then "Danske" else if Text.Contains([Acionista], "DEKA") then "DEKA" else if Text.Contains([Acionista], "DELAWARE") then "Delaware" else if Text.Contains([Acionista], "DEUTSCHE") then "Deutsche" else if Text.Contains([Acionista], "DFA ") then "DFA" else if Text.Contains([Acionista], "DIMENSIONAL") then "Dimensional" else if Text.Contains([Acionista], "DRIEHAUS") then "Driehaus" else if Text.Contains([Acionista], "EQUITAS") then "Equitas" else if Text.Contains([Acionista], "EURIZON") then "Eurizon" else if Text.Contains([Acionista], "EUROAMERICA") then "Euroamerica" else if Text.Contains([Acionista], "FIDELITY") then "Fidelity" else if Text.Contains([Acionista], "CAISSE ") then "Constellation" else if Text.Contains([Acionista], "CHANG ") then "Chang Bank" else if Text.Contains([Acionista], "EBK-AKTIEN") then "JP Morgan" else if Text.Contains([Acionista], "DIMENS GR") then "Dimensional" else if Text.Contains([Acionista], "EMERGING MARKETS SUSTAINABILITY CORE 1 PORTFOLIO") then "Dimensional" else if Text.Contains([Acionista], "EMERGING MARKETS TARGETED VALUE PORTFOLIO") then "Dimensional" else if Text.Contains([Acionista], "EMG MKT SOCIAL CORE PORT OF DFA INVEST DIMENSIONS GROUP INC") then "Dimensional" else if Text.Contains([Acionista], "EUROAMERICA AM SICAV-SMALL CAP LATAM FUND") then "Itaú Unibanco" else if Text.Contains([Acionista], "FONDO DE INVERSION LATAM") then "Banchile" else if Text.Contains([Acionista], "FONDO DE INVERSION ITAU") then "Itaú Unibanco" else if Text.Contains([Acionista], "FONDO MUTUO ITAU") then "Itaú Unibanco" else if Text.Contains([Acionista], "FONDO MUTUO LARRAINVIAL") then "Larrainvial Asset" else if Text.Contains([Acionista], "FORD ") then "Ford Motor" else if Text.Contains([Acionista], "GAM ") then "GAM" else if Text.Contains([Acionista], "GAVIAO ") then "Gaviao" else if Text.Contains([Acionista], "GOLDMAN SACHS ") then "Goldman Sachs" else if Text.Contains([Acionista], "GOTHIC ") then "Gothic Corp" else if Text.Contains([Acionista], "HANOVER INVESTMENTS (LUXEMBOURG) S.A.") then "Constellation" else if Text.Contains([Acionista], "HSBC ") then "HSBC" else if Text.Contains([Acionista], "IBM ") then "IBM" else if Text.Contains([Acionista], "KAPITALANLAGEGESELLSCHAFT") then "KAPITALANLAGEGESELLSCHAFT" else if Text.Contains([Acionista], "INVESCO ") then "Invesco" else if Text.Contains([Acionista], "ISHARES ") then "BLACKROCK" else if Text.Contains([Acionista], "ITAU ") then "Itaú Unibanco" else if Text.Contains([Acionista], "J.P. MORGAN ") then "JP Morgan" else if Text.Contains([Acionista], "JPMORGAN ") then "JP Morgan" else if Text.Contains([Acionista], "JP MORGAN ") then "JP Morgan" else if Text.Contains([Acionista], "JAPAN TRUSTEE ") then "Franklin Templeton" else if Text.Contains([Acionista], "JOHN HANCOCK ") then "John Hancock" else if Text.Contains([Acionista], "KAISER ") then "Kaiser" else if Text.Contains([Acionista], "KAPITALO ") then "Kapitalo" else if Text.Contains([Acionista], "KOOKMIN ") then "Kookmin Bank" else if Text.Contains([Acionista], "KUWAIT INVESTMENT AUTHORITY") then "Itaú Unibanco" else if Text.Contains([Acionista], "LA HOLDINGS (LUXEMBOURG) SA") then "Itaú Unibanco" else if Text.Contains([Acionista], "LARRAINVIAL") then "Larrainvial Asset" else if Text.Contains([Acionista], "MERCER") then "Mercer Global" else if Text.Contains([Acionista], "MERRILL") then "Merrill Lynch" else if Text.Contains([Acionista], "SOMERSET") then "Somerset" else if Text.Contains([Acionista], "MIRAE") then "Mirae Asset" else if Text.Contains([Acionista], "MONEDA") then "Moneda" else if Text.Contains([Acionista], "SOMERSET") then "Somerset" else if Text.Contains([Acionista], "MORGAN STANLEY") then "JP MORGAN" else if Text.Contains([Acionista], "NORDEA 1, SICAV- NORDEA 1- LATIN AMERICAN EQUITY FUND") then "Itaú Unibanco" else if Text.Contains([Acionista], "NORDEA") then "Itaú Unibanco" else if Text.Contains([Acionista], "NORTHERN TRUST") then "Northern Trust" else if Text.Contains([Acionista], "NORDEA") then "Itaú Unibanco" else if Text.Contains([Acionista], "NTGI") then "NTGI" else if Text.Contains([Acionista], "OLD WESTBURY") then "Old Westbury" else if Text.Contains([Acionista], "OPTIMIX") then "Optimix" else if Text.Contains([Acionista], "PARAMETRIC") then "Parametric Investment" else if Text.Contains([Acionista], "BANK OF CHINA") then "Bank of China" else if Text.Contains([Acionista], "PICTET") then "PICTET" else if Text.Contains([Acionista], "PUB INSTITUTIONAL FUND UMBRELLA-PUB EQUITIES EMER MARKETS") then "Credit Suisse" else if Text.Contains([Acionista], "QUEENSLAND") then "QUEENSLAND" else if Text.Contains([Acionista], "RAM ") then "RAM" else if Text.Contains([Acionista], "REUSS (LUX) FCP RAIF-AMAZONAS") then "Constellation" else if Text.Contains([Acionista], "SANTANDER") then "Santender" else if Text.Contains([Acionista], "SCHRODER") then "Schroder" else if Text.Contains([Acionista], "SEI ") then "SEI Investments" else if Text.Contains([Acionista], "SHINHAN") then "BNP Paribas" else if Text.Contains([Acionista], "SOMERSET") then "Somerset" else if Text.Contains([Acionista], "SPDR ") then "State Street" else if Text.Contains([Acionista], "SSGA ") then "SSGA" else if Text.Contains([Acionista], "SPDR ") then "State Street" else if Text.Contains([Acionista], "STATE STREET ") then "State Street" else if Text.Contains([Acionista], "STICHTING ") then "Stichting" else if Text.Contains([Acionista], "STRATEGY ") then "Strategy" else if Text.Contains([Acionista], "SULAMERICA") then "Sulamerica" else if Text.Contains([Acionista], "SYMMETRY") then "Symmetry" else if Text.Contains([Acionista], "ROWE ") then "T. Rowe" else if Text.Contains([Acionista], "BOEING") then "Boeing Company" else if Text.Contains([Acionista], "THE DFA INV T CO ON BEH ITS S THE EM SLL CAPS") then "Dimensional" else if Text.Contains([Acionista], "THE MASTER T") then "Bank of Japan" else if Text.Contains([Acionista], "TYLER FINANCE LLC") then "Constellation" else if Text.Contains([Acionista], "UBS ") then "UBS" else if Text.Contains([Acionista], "ULLICO") then "Ullico" else if Text.Contains([Acionista], "UNIBANCO") then "Itaú Unibanco" else if Text.Contains([Acionista], "UNIVERSAL") then "Universal Investing" else if Text.Contains([Acionista], "VANGUARD") then "Vanguard" else if Text.Contains([Acionista], "VICTOIRE") then "Victoire" else if Text.Contains([Acionista], "VINSON") then "Vinson" else if Text.Contains([Acionista], "WELLINGTON ") then "Wellington" else if Text.Contains([Acionista], "WELLS FARGO") then "Wells Fargo" else if Text.Contains([Acionista], "WILLIAN BLAIR") then "Willian Blair" else if Text.Contains([Acionista], "WISDOMTREE") then "Wisdomtree" else if Text.Contains([Acionista], "WORD EX") then "Dimensional" else if Text.Contains([Acionista], "ABN ") then "ABN Amro" else if Text.Contains([Acionista], "Ac2 ") then "Ac2 Investimentos" else if Text.Contains([Acionista], "Ace ") then "Ace Capital" else if Text.Contains([Acionista], "Agrimisa ") then "Agrimisa" else if Text.Contains([Acionista], "Apex ") then "Apex capital" else if Text.Contains([Acionista], "Bahia ") then "Bahia" else if Text.Contains([Acionista], "Bamerindus ") then "Bamerindus" else if Text.Contains([Acionista], "Banco 1 ") then "Banco 1" else if Text.Contains([Acionista], "Bradesco ") then "Bradesco" else if Text.Contains([Acionista], "BTG ") then "BTG Pactual" else if Text.Contains([Acionista], "Citbank ") then "Citibank" else if Text.Contains([Acionista], "Safra ") then "Safra" else if Text.Contains([Acionista], "Morgan") then "JP Morgan" else if Text.Contains([Acionista], "Santander ") then "Santander" else if Text.Contains([Acionista], "Bancocidade ") then "Banco Cidade" else if Text.Contains([Acionista], "Bancorp ") then "Bancorp" else if Text.Contains([Acionista], "Bank of America ") then "Bank of America" else if Text.Contains([Acionista], "Banrisul ") then "Banrisul" else if Text.Contains([Acionista], "BB ") then "Banco do Brasil" else if Text.Contains([Acionista], "BB-") then "Banco do Brasil" else if Text.Contains([Acionista], "BBA ") then "Itaú Unibanco" else if Text.Contains([Acionista], "BCN ") then "BCN" else if Text.Contains([Acionista], "Bemge ") then "Bemge" else if Text.Contains([Acionista], "BMC ") then "BMC" else if Text.Contains([Acionista], "Boreal ") then "Boreal" else if Text.Contains([Acionista], "Boston ") then "Boston" else if Text.Contains([Acionista], "Bozano ") then "Bozano" else if Text.Contains([Acionista], "Cacique ") then "Cacique" else if Text.Contains([Acionista], "Ccf ") then "Ccf" else if Text.Contains([Acionista], "Chase ") then "Chase" else if Text.Contains([Acionista], "Citi") then "Citibank" else if Text.Contains([Acionista], "Constellation ") then "Constellation" else if Text.Contains([Acionista], "Credit Suisse") then "Credit Suisse" else if Text.Contains([Acionista], "Cx ") then "Caixa Econômica" else if Text.Contains([Acionista], "Cx. ") then "Caixa Econômica" else if Text.Contains([Acionista], "Deutsche ") then "Deutsche" else if Text.Contains([Acionista], "Daycoval") then "Daycoval" else if Text.Contains([Acionista], "Equitas ") then "Equitas" else if Text.Contains([Acionista], "Icatu ") then "Icatu" else if Text.Contains([Acionista], "Inter ") then "Inter" else if Text.Contains([Acionista], "Itau ") then "Itaú Unibanco" else if Text.Contains([Acionista], "jpmorgan") then "JP Morgan" else if Text.Contains([Acionista], "Kinea") then "Kinea" else if Text.Contains([Acionista], "Lloyds ") then "Lloyds" else if Text.Contains([Acionista], "Opportunity ") then "Opportunity" else if Text.Contains([Acionista], "Prumo ") then "Prumo Capital" else if Text.Contains([Acionista], "Sharp ") then "Sharp Capital" else if Text.Contains([Acionista], "Unibanco ") then "Itaú Unibanco" else if Text.Contains([Acionista], "Vinci ") then "Vinci Capital" else if Text.Contains([Acionista], "Votorantim ") then "Votorantim" else if Text.Contains([Acionista], "Xp ") then "XP Investimentos" else [Acionista]),
#"Coluna Condicional Adicionada" = Table.AddColumn(ADDGestorInternacional, "Gestora Unificado", each if [Status Geral] = "Estrangeiro" then [Gestora Internacional] else if [Gestora Nacional] <> null then [Gestora Nacional] else if [Status Geral] = "Pessoa Jurídica" then [Acionista] else [Status Geral]),
#"Tipo Alterado3" = Table.TransformColumnTypes(#"Coluna Condicional Adicionada",{{"Gestora Unificado", type text}, {"Gestora Internacional", type text}}),
#"Duplicatas Removidas2" = Table.Distinct(#"Tipo Alterado3", {"CNPJ/CPF"})
in
#"Duplicatas Removidas2"
Obrigado!