Мне было интересно, если есть в любом случае, чтобы вернуть имя таблицы с помощью формулы?

Я работал над тем, как разбить несколько тысяч адресов на перспективную колонку информации. то есть .. #, Улица, город, штат, почтовый индекс и номер телефона. Адреса не имеют какого-либо согласованного формата, в котором текст в столбцы будет работать. Я наконец-то придумал формулы, чтобы выполнить работу, но они очень длинные. В сообщении, которое я нашел, было предложено использовать повторяющиеся части формул в качестве определенного имени. И это сделало это намного проще. Теперь вот проблема.

Формула с именем таблицы "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]")))

Однако мне все еще нужно, чтобы это была Формула Только. Хотя я могу запускать макросы на моем ПК, они не будут запускаться на ПК, на котором есть все данные.

1 ответ1

0

Не используйте структурированные ссылки, вместо этого используйте ссылки на ячейки.

С State в столбце A и Origin в столбце B, первая строка имеет заголовки столбцов, используйте =MAX(SEARCH(A2,B2)) . Скопируйте формулу в любую другую таблицу с таким же макетом, и ссылки на ячейки будут скорректированы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .