Создать столбец из заголовков таблицы, используя структурированные ссылки

Создать столбец из заголовков таблицы, используя структурированные ссылки

У меня есть именованная таблица ( DATA) в Excel. Я хочу создать отдельную таблицу ( INFO_TABLE) в другом месте, где один столбец будет содержать заголовки из DATAтаблицы.

Это то, что мне нужно — таблица 'HEADERS' содержит столбец, заполненный одной формулой (в верхней ячейке этого столбца), пролитой вниз, содержащей все значения заголовков из первой таблицы. Как мне этого добиться?

Желаемый результат

{=DATA[#Headers]}дает мнерядсодержащий заголовки, но не заполняется автоматически (слева направо) при использовании CSE (на Mac). Перетаскивание формулы вниз (например, A2:A5) дает только первое имя столбца из DATA, как показано на этом снимке экрана:

Не тот результат, который хотелось бы получить

Я тоже пробовал {=TRANSPOSE(DATA[#Headers]))}, но это не работает.

(Идеальное решение не содержит VBA или макросов).

решение1

Вы можете использовать Power Query:

  1. ВыберитеДанные таблицы- идти кДанные-Из таблицы/диапазона- ОткройРедактор Power Query: введите описание изображения здесь

  2. ВРедактор Power Query- подДомвкладка-выбратьИспользовать заголовки в качестве первой строки введите описание изображения здесь

  3. Идти кТрансформироватьвкладка-выбратьТранспонировать: введите описание изображения здесь

  4. УдалятьНулевой столбец иПереименоватьстолбец 1 кЗаголовок: введите описание изображения здесь

  5. Вкладка «Главная» — Закрыть и загрузить в...: введите описание изображения здесь введите описание изображения здесь

решение2

К сожалению, в таблицу, которая SPILLS, ввести формулу нельзя.

Но вы можете использовать эту формулу в первой ячейке столбца «Заголовки» и перетащить ее вниз настолько, насколько это необходимо:

=INDEX(Data[#Headers],ROWS($1:1))

При перетаскивании вниз ROWSфункция автоматически меняется, возвращая каждый последовательный элемент в #Headersмассиве.

введите описание изображения здесь

решение3

Таблицы не допускают двух вещей, являющихся вариациями одной и той же идеи:

  1. SPILLформулы (вероятно, из-за повторения в каждой строке формулы для столбца, что приводит к тому, что каждая такая формула «наступает» на те, что находятся ниже, что приводит к ошибке разлива)

  2. Использование массивов старого стиля для решения той же задачи (вероятно, по той же причине)

Вы можете попробовать следующую формулу, которая не включает SPILLили иным образом включает результаты, которые должны были бы отображаться поверх результатов следующей строки:

=INDEX(Table1[#Headers],1,ROW()-1)

Его результаты представляют собой одну ячейку данных, поэтому РЕЗУЛЬТАТЫ не выливаются на результаты других строк. Он использует функцию таблицы (по сути) вылива ФОРМУЛЫ, чтобы получить заполненный столбец результатов, который вам нужен.

Однако он поддерживает только то количество строк, которое соответствует количеству столбцов в исходной таблице, но это, по-видимому, не будет проблемой.

Либо потяните размеры таблицы вниз, чтобы было достаточно строк для всех столбцов в исходной таблице, затем введите формулу, либо введите формулу, затем потяните размеры таблицы вниз, чтобы подогнать результаты. Никаких дополнительных строк, но и не слишком мало! (Используйте маленький маркер в правом нижнем углу нижней правой ячейки таблицы, чтобы перетащить вверх/вниз (и влево/вправо, если это необходимо), чтобы подогнать ее размер. Перетащите вниз, пока не получите дефектные результаты, затем вверх до последнего хорошего результата. Или заранее выясните, куда перетаскивать. Или просто отредактируйте диапазон таблицы. Множество способов.)

Связанный контент