Retorna o nome da tabela usando Fórmula?

0

Eu queria saber se existe alguma maneira de retornar o nome da tabela usando uma fórmula?

Eu estava trabalhando em uma maneira de dividir alguns milhares de endereços na coluna de informações da perspectiva. ou seja, #, rua, cidade, estado, código postal e telefone #. Os endereços não estão em nenhum formato consistente que o Text to Columns funcionaria. Eu finalmente cheguei com as fórmulas para fazer o trabalho, mas são muito longas. Em um post eu achei sugerido usar partes repetidas das fórmulas como um Nome Definido. E isso tornou muito mais fácil. Agora, aqui está o problema.

Uma fórmula que tenha o nome da tabela "Tabela1" não funcionará na "Tabela2". Ou qualquer outro nome de tabela. Cabeçalhos de coluna são os mesmos para cada tabela.

MAX(SEARCH(Table1[@State],Table1[@Origin]))

Uma maneira de retornar o nome da tabela é necessária. Via fórmula ou fórmula como nome definido.

MAX(SEARCH(GetTableName[@State],GetTableName[@Origin]))

Eu prefiro que seja uma fórmula. Não tenho certeza se uma solução de VBA seria uma resposta correta a essa pergunta, portanto, não seria capaz de escolhê-la como resposta, mesmo que funcione. Ainda será apreciado. Eu vou perguntar em um post separado, se eu não encontrar uma solução de fórmula.

TY

Eu encontrei este post que tem uma solução VBA, mas não posso usá-lo. Vou postar apenas para que alguém possa descobrir isso. Portland Runner Publicou este CÓDIGO para obter o nome da tabela.

Function GetTableName(shtName As String) As String
    GetTableName = Worksheets(shtName).ListObjects(1).Name
End Function

Nessa função, eu insiro a fórmula My Defined Name chamada "SheetName"

=MID(CELL("filename"),FIND("]",CELL("filename"))+1,100)

Então eu posso usar isso assim.

=MAX(SEARCH(INDIRECT(GetTableName(SheetName)&"[@State]"),INDIRECT(GetTableName(SheetName)&"[@Origin]")))

No entanto, ainda preciso que isso seja apenas para fórmulas. Embora eu possa executar macros no meu PC, eles não serão executados no PC que possui todos os dados.

    
por Mouthpear 12.04.2016 / 02:22

1 resposta

0

Não use referências estruturadas, use referências de células.

Com o Estado na coluna A e a Origem na coluna B, a primeira linha possui cabeçalhos de coluna, use =MAX(SEARCH(A2,B2)) . Copie a fórmula para qualquer outra tabela com o mesmo layout e as referências de célula serão ajustadas.

    
por 12.04.2016 / 22:13