Мне было интересно, если есть так или иначе, чтобы вернуть имя таблицы, используя формулу?Имя таблицы возврата Excel с использованием формулы?
Я работал над тем, чтобы разбить несколько тысяч адресов в виде столбца информации. т.е. .. #, улица, город, штат, почтовый индекс и номер телефона. Адреса не находятся в каком-либо согласованном формате, который будет работать Text to Columns. Я, наконец, придумал формулы, чтобы выполнить работу, но они очень длинные. В сообщении я нашел предложение использовать повторяющиеся части формул в качестве Определенного имени. И это сделало его намного проще. Теперь вот проблема.
Формула, которая имеет название таблицы «Таблица 1», не будет работать в «Таблице2». Или любое другое имя таблицы. Заголовки столбцов одинаковы для каждой таблицы.
MAX(SEARCH(Table1[@State],Table1[@Origin]))
Необходимо указать путь к названию таблицы. По формуле или формуле в качестве Определенного имени.
MAX(SEARCH(GetTableName[@State],GetTableName[@Origin]))
Я предпочитаю, чтобы это была формула. Я не уверен, что решение VBA будет правильным ответом на этот вопрос, поэтому я не смогу выбрать его как ответ, даже если он работает. Он по-прежнему будет оценен. Я спрошу в отдельном посте, если я не найду Формулы решения.
TY
Я нашел этот пост, который имеет решение VBA, но я не могу его использовать. Я отправлю сообщение, чтобы кто-то мог понять это. Portland Runner Отправил этот CODE, чтобы получить имя таблицы.
Function GetTableName(shtName As String) As String
GetTableName = Worksheets(shtName).ListObjects(1).Name
End Function
В этой функции Ввожу Defined Имя формулу под названием "SheetName"
=MID(CELL("filename"),FIND("]",CELL("filename"))+1,100)
Так что я могу использовать его, как это.
=MAX(SEARCH(INDIRECT(GetTableName(SheetName)&"[@State]"),INDIRECT(GetTableName(SheetName)&"[@Origin]")))
Однако мне все еще нужно, чтобы это была только формула. Хотя я могу запускать макросы на моем ПК, они не будут запускаться на ПК, на котором есть все данные.
Это последнее, что я получил от UDF. К сожалению, я все еще не могу его использовать. Плюс Он получает имя первой таблицы, а не фактическую таблицу, в которой находится ячейка. Хорошо, если это единственная таблица на листе или если первая таблица - это таблица, которую вы хотите.
кросс-размещены здесь: http://superuser.com/questions/1064308/return-table-name-using-formula - Пожалуйста, не оставляйте тот же вопрос на нескольких сайтах. – teylyn
Все еще VBA было бы легким решением. Вы можете создать UDF с входами, такими как '= MyFunction (TableName, Field, someOtherValuesYouWant, ....)'. Таким образом, вы получаете простые формулы «копировать/вставлять» для работы вместо бесконечных формул;) –
@DirkReichel Да, я уверен, что VBA - лучший и простой вариант, однако компьютер, на котором находится информация, не принадлежит мне и макросы отключены из-за политики компании. Извлечение данных и выполнение их на моем собственном компьютере не является вариантом из-за проблем с конфиденциальностью. Однако, если у вас есть решение VBA, я бы хотел его увидеть. Но в этом случае необходима формула. – Mouthpear