Excel структурированная эталонная таблица синтаксис
-
18-09-2019 - |
Вопрос
Я стараюсь не использовать Excel слишком много, но когда я люблю использовать структурированные ссылки, так как они кажутся намного чище, чтобы писать.
Если я создам таблицу под названием «Таблица 1» с столбцами «COL1» и «COL2», как бы я ссылался на первую строку в «COL1», используя структурированную ссылку в другой таблице? Я попробовал синтаксис =table1[[#this row],[col1]]
, и просто получите ошибку. Есть ли синтаксис как =table1[1,1] or =table1[1,[col1]]
? Конечно, это тоже не работает, но в чем же эквивалентно?
Это очень раздражает, так как кажется, что это должно быть просто.
Решение
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
Другие советы
пытаться
=INDEX(col1,1)
Вы даже можете обратиться к клеткам в таблице с 2 димами, используя
=INDEX(reference,row_num,column_num)
Хитрость в таких случаях состоит в том, чтобы использовать функцию смещения Excel:
- Доступ к 1 -й строке столбца с именем Column1 в той же таблице:
OFFSET([Column1],0,0,1)
- Доступ на 2 -й ряд
OFFSET([Column1],1,0,1)
и т.п.
Конечно, вы можете использовать это, чтобы приобрести другую таблицу и столбец, просто префикс его с именем таблицы. Например OFFSET(Table2[Column3],4,0,1)
Доступ к 4 -й строке столбца «столбца3» из «Таблица 2»
Похоже, нет явного способа использования структурированных ссылок на определенные строки в таблице. Как говорит Адриан, вы можете использовать индекс.
Или вы можете использовать неявное пересечение для ссылки на одну и ту же строку: если таблица 1 находится в строке 5:10, а в Таблице 2 также находится в строке 5:10, тогда используя структурированную ссылку с именами столбцов, неявно пересекает одну и ту же строку.
Или вы можете ввести структурированную ссылку в виде формулы многояроновой массивы (выберите несколько ячеек, введите формулу и использовать Ctrl-Shift-enter) в разных рядах, и она будет работать.
Вместо индекса я бы предложил Sumif. Он позволит вам использовать значения таблицы, а не явные номера строк (которые могут сломаться, если вы начнете фильтрацию или заказ). Например (по следующей ссылке), это суммирует столбец суммы и включает только те строки, где тип равна проверке и где учетная запись равна утилитам:=SUMIFS(Table1[Amount],Table1[Type],“Check”,Table1[Account], “Utilities”)
Смотрите эту ссылку Подробнее: http://office.microsoft.com/en-us/excel-help/using-structured-references-with-excel-ha010155686.aspx
Было бы неплохо, если бы в таблице может быть столбец, обозначенный как основной ключ (который может быть числовым или строк), а затем структурированный реф, может включать способ ссылаться на строку с помощью его основного ключа.
Это был бы синтаксис сахара вокруг Vlookup, но таблица может знать, была ли она сортирована на первичном ключе, и выполнять эффективные поиски только в этом случае. Кажется, что Vlookup встраивает в него зло, которое находит неправильный ряд, если вы зависите от отсортированного, особенно когда таблицы имеют удобный способ сортировки строк.