Мне было интересно, если есть в любом случае, чтобы вернуть имя таблицы с помощью формулы?
Я работал над тем, как разбить несколько тысяч адресов на перспективную колонку информации. то есть .. #, Улица, город, штат, почтовый индекс и номер телефона. Адреса не имеют какого-либо согласованного формата, в котором текст в столбцы будет работать. Я наконец-то придумал формулы, чтобы выполнить работу, но они очень длинные. В сообщении, которое я нашел, было предложено использовать повторяющиеся части формул в качестве определенного имени. И это сделало это намного проще. Теперь вот проблема.
Формула с именем таблицы "Table1" не будет работать в "Table2". Или любое другое имя таблицы. Заголовки столбцов одинаковы для каждой таблицы.
MAX(SEARCH(Table1[@State],Table1[@Origin]))
Нужен способ вернуть имя таблицы. С помощью формулы или формулы в качестве определенного имени.
MAX(SEARCH(GetTableName[@State],GetTableName[@Origin]))
Я предпочитаю, чтобы это была формула. Я не уверен, что решение VBA будет правильным ответом на этот вопрос, поэтому я не смогу выбрать его в качестве ответа, даже если он работает. Это все еще будет оценено. В отдельном сообщении я спрошу, не найду ли я решение Формулы.
TY
Я нашел этот пост, который имеет решение VBA, но я не могу его использовать. Я опубликую, чтобы кто-то мог понять это. Портлендский Бегун Отправил этот КОД, чтобы получить имя таблицы.
Function GetTableName(shtName As String) As String
GetTableName = Worksheets(shtName).ListObjects(1).Name
End Function
В этой функции я ввожу формулу "Мое определенное имя" с именем "SheetName"
=MID(CELL("filename"),FIND("]",CELL("filename"))+1,100)
Так что я могу использовать это так.
=MAX(SEARCH(INDIRECT(GetTableName(SheetName)&"[@State]"),INDIRECT(GetTableName(SheetName)&"[@Origin]")))
Однако мне все еще нужно, чтобы это была Формула Только. Хотя я могу запускать макросы на моем ПК, они не будут запускаться на ПК, на котором есть все данные.