Синтаксис структурированной справочной таблицы Excel

Я стараюсь избегать слишком частого использования Excel, но когда мне это удается, мне нравится использовать структурированные ссылки, поскольку они кажутся более понятными для написания.

Если я создам таблицу с именем «table1» со столбцами «col1» и «col2», как я могу ссылаться на первую строку в «col1», используя структурированную ссылку в другой таблице? Я пробовал использовать синтаксис =table1[[#this row],[col1]] и получил сообщение об ошибке. Есть ли синтаксис типа =table1[1,1] or =table1[1,[col1]]? Конечно, это тоже не работает, но какой эквивалент?

Это очень раздражает, так как вроде бы все должно быть просто.


person Michael    schedule 10.12.2009    source источник
comment
Это кажется несколько противоречащим духу структурированной таблицы. Хорошей практикой будет отсутствие информации о порядке строк. Столбцы - это атрибуты, строки - это экземпляры или наблюдения. Рассмотрите возможность добавления столбца индекса (например, Order, Date или Sequence), а затем выберите столбец с Sequence равным 1.   -  person brittohalloran    schedule 06.09.2018


Ответы (6)


Table1[[#This Row][Column1]] работает, но формула должна находиться в той же строке, что и строка таблицы, на которую вы хотите ссылаться.

Чтобы ссылаться на первую строку в другом месте, используйте либо COUNTIFS(criteria_range1, criteria1 [, criteria_rangen, criterian]), либо немного более сложный SUMIFS(), если вам нужны числовые значения вместо счетчиков, как указано Studgeek:

SUMIFS(sum_range1, criteria_range1, criteria1 [, criteria_rangen, criterian])

Разумеется, вам понадобится уникальный критерий строки, по которому можно выбрать строку. Так, например:

Table1
ID Value Name
1  2     Two
2  4     Four
3  8     Eight

SUMIF(Table1[Value], Table1[ID], 2) ... возвращает значение 4 (или ноль, если ID = 2 не найден). Если ваше значение не является числовым, вы, очевидно, не можете использовать этот метод.

Тем не менее, Акун почти нашел реальный ответ, но он не зашел достаточно далеко в своем объяснении / примере, ИМО.

INDEX(Table1[Name], 2) возвращает "Четыре" INDEX(Table1, 1, 1) возвращает 1

person jdw    schedule 16.06.2012

пытаться

=INDEX(col1,1)

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

=INDEX(reference,row_num,column_num)
person akuhn    schedule 10.12.2009

Уловка в таких случаях заключается в использовании функции СМЕЩЕНИЕ в Excel:

  • Доступ к 1-й строке столбца с именем Column1 в той же таблице: OFFSET([Column1],0,0,1)
  • Доступ ко второй строке OFFSET([Column1],1,0,1)

и Т. Д.

Конечно, вы можете использовать это для доступа к другой таблице и столбцу, просто добавив к ним префикс имени таблицы. Например, OFFSET(Table2[Column3],4,0,1) получит доступ к 4-й строке столбца Column3 таблицы Table2.

person Alexis Martial    schedule 01.03.2018

Кажется, не существует явного способа использования структурированных ссылок на определенные строки в таблице. Как говорит Адриан, вы можете использовать INDEX.

Или вы можете использовать неявное пересечение для ссылки на одну и ту же строку: если таблица 1 находится в строке 5:10, а таблица 2 также находится в строке 5:10, тогда использование структурированной ссылки с именами столбцов неявно пересечет ту же строку.

Или вы можете ввести структурированную ссылку как формулу многострочного массива (выберите несколько ячеек, введите формулу и используйте Ctrl-shift-Enter) в разных строках, и это будет работать.

person Charles Williams    schedule 10.12.2009

Вместо ИНДЕКС я бы предложил СУММЕСЛИ. Это позволит вам использовать значения таблицы, а не явные номера строк (которые могут сломаться, если вы начнете фильтровать или упорядочивать). Например (из следующей ссылки), это суммирует столбец Amount и включает только те строки, где Type равно Check, а Account равно Utilities: =SUMIFS(Table1[Amount],Table1[Type],“Check”,Table1[Account], “Utilities”)

См. Дополнительную информацию по этой ссылке: http://office.microsoft.com/en-us/excel-help/using-structured-references-with-excel-tables-HA010155686.aspx

person studgeek    schedule 17.08.2011

Было бы неплохо, если бы в таблице мог быть столбец, обозначенный как первичный ключ (который может быть числовым или строковым), а затем структурированная ссылка могла бы включать способ ссылки на строку по ее первичному ключу.

Это было бы синтаксическим сахаром вокруг ВПР, но таблица могла бы знать, была ли она отсортирована по первичному ключу, и выполнять эффективный поиск только в этом случае. Кажется, что ВПР заключает в себе зло, которое находит неправильную строку, если вы полагаетесь на сортировку, особенно когда в таблицах есть удобный способ сортировки строк.

person Mike Hanafey    schedule 26.08.2017
comment
Четвертый параметр range_lookup функции VLOOKUP () требует точных совпадений и работает даже в несортированных таблицах. Если совпадение не найдено, возвращается ошибка. - person Pekka; 22.01.2019