Estou usando o Power Query no Excel para Microsoft 365.
Tenho um Power Query cujo primeiro passo é combinar um conjunto de tabelas:
let
Source = Table.Combine({One_foo_bar, Two_foo_bar, Three_foo_bar, Four_foo_bar, Five_foo_bar, Six_foo_bar, Seven_foo_bar, Eight_foo_bar}),
// ...
#"Result" = ...
in
#"Result"
O problema é que nem todas as tabelas nomeadas podem existir. Qualquer subconjunto das tabelas pode existir. Aqueles que existem estão em ThisWorkbook
. Se algum estiver faltando, o código M mostrado acima gerará um erro.
Se a correspondência de padrões puder ajudar a resolver esse problema, todos os nomes das tabelas seguirão o padrão * _foo_bar . M não parece ter suporte para esse tipo de correspondência de padrões, mas incluo esta afirmação caso alguém saiba algo que não sei e possa utilizar esse fato para formular uma solução.
Como posso modificar este código para combinar as tabelas que existem?
Good question, and this is not a full answer, but I would start with this idea. First, build the array of existing tables in excel like:
then using power query to get the existing tables from that table.
An alternative is to build that array more directly in PowerQuery using
TRY
Use
Excel.CurrentWorkbook()
as the Source, then filter the Name column to return only the items that end with "_foo_bar". For example,Although I have accepted the answer given by @DjC, I'll post for future reference an answer I arrived at using the suggestion given by @gns100.