Я хочу отобразить имя таблицы в ячейке. Это то, что я придумал, так как мне нужно решение, которое не использует массивы или макросы.

Есть ли способ сжать эти формулы в одну ячейку? Я хотел бы сделать так, чтобы у меня была только одна ячейка, которую я могу вставить куда угодно, которая динамически отображает имя этой таблицы.

Столбец M - это просто FORMULATEXT столбца справа, в целях иллюстрации.

Идея заключается в том, что если я вырежу и вставлю таблицу, включая ячейки, расположенные непосредственно слева от нее, в другое место в электронной таблице, она все равно будет работать правильно и отображать имя таблицы. Структурированная ссылка в ячейке N24 гарантирует, что она все еще будет работать, даже если я вставлю что-то еще между таблицей и текущим столбцом N.

  1. Ячейка n25 возвращает имя заголовка произвольного столбца в таблице. Преимущество заключается в том, что оно будет обновляться автоматически при изменении имени таблицы или столбца и не зависит от того, находится ли таблица в определенном месте.
  2. Ячейка n24 захватывает часть сформулированного текста в n25. В частности, он начинает поиск со второго символа (т. Е. После = в формуле), пока не находит [[, который отмечает конец имени таблицы и начало имени столбца (нам нужно только имя таблицы). Это работает на моем Excel 2016, но, к сожалению, не будет работать на более ранних версиях Excel, что является боль
  3. Ячейка n23 находит и удаляет квадратные скобки из того, что возвращено в n24.
  4. Ячейка n22 удаляет подчеркивания и заменяет их пробелами. Не обязательно, но выглядит аккуратнее.

Проблема с этим способом состоит в том, что верхние три ячейки должны быть помещены выше текущего n25, чтобы это работало. Они занимают место и выглядят грязно. Я справился с этим, просто установив цвет текста ячеек на белый, кроме верхнего.

Есть ли лучший способ сделать это, не используя макросы или массивы, бонусные баллы за решение, которое можно использовать в Excel 2010? Или этот вопрос будет выставкой, которую они используют, чтобы пометить мой слайд в безумие?

1 ответ1

0

Без макро или VBA UDF, не может быть решение одной ячейки. Здесь раствор ОП сгущен на две ячейки. Возможно, в ячейке N25 можно использовать ;;;"" пользовательское форматирование, чтобы отформатировать текст ячейки как пустой (или использовать цвет шрифта такой же, как цвет фона, трюк).

N25 =Scans_per_day_by_site[[#Headers],[Location]] Formula =PROPER(SUBSTITUTE(MID(FORMULATEXT(N25),2,FIND("[",FORMULATEXT(N25))-2),"_"," "))

Помимо добавления заглавных букв с использованием PROPER , единственное различие между этим ответом и OP заключается в вычислении возвращаемых символов MID .

  • Во-первых, FIND возвращает место, где текст впервые найден во втором аргументе: N25 (не MID(2,N25,...).
  • При использовании MID возвращение этого количества символов с начала N25 будет включать найденный символ.
  • Чтобы исключить найденный символ, вычтите 1 из количества символов.
  • Поскольку начало MID равно 2 , символ удаляется с начала, сдвигая возвращаемые символы вправо на единицу.
  • Опять же, это еще один персонаж, чем нужно.
  • Вычтите еще 1 на общую сумму - 2 .

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