Как использовать именованный столбец в формулах Excel - PullRequest
4 голосов
/ 17 декабря 2010

Я знаю, как создать именованный диапазон в Excel.

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

однако формула выглядит так (стоит 3 строки):

=G2*(10*D2 + 20*E2 + 5*F2)
=G3*(10*D3 + 20*E3 + 5*F3)
=G4*(10*D4 + 20*E4 + 5*F4)

Я хотел бы использовать именованные диапазоны, но я не могу найти способ сделать что-то вроде

=Count * (10*var1 + 20*var2 + 5*var3)

, где count, var1, var2 и var3 автоматически обновляются, чтобы быть определенным столбцомтекущего ряда.Я могу создать именованный диапазон для каждой ячейки, но это не помогает.Я могу назвать диапазон столбца, но тогда я не могу найти способ поместить смещение в формулу.

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

Ответы [ 9 ]

6 голосов
/ 29 октября 2013

Простой, по крайней мере, при использовании Excel 2010:

  1. назовите свой столбец: выберите полный столбец, введите имя
  2. использовать имя столбца в формуле; Excel объединит указанный столбец с текущей строкой для доступа к отдельной ячейке.

Используя пример из "Alex P":

  1. выберите столбец D, щелкнув заголовок столбца, содержащий «D», введите имя «input1» в поле имени и нажмите клавишу ввода.
  2. повторите для столбцов с E по F, используя соответственно «input2» и «input3».
  3. НЕ определяйте дополнительные имена, определяющие имена "input1" [...], как в примере выше!
  4. используйте формулу, как указано в примере выше

Внимание: Таким образом, используя именованные столбцы, вы НЕ МОЖЕТЕ получить доступ ни к какой другой строке, такой как ваша формула! По крайней мере, я не знаю о возможности выразить что-то вроде (строка + 1) ...

4 голосов
/ 17 декабря 2010

Предположим, у меня установлены следующие числа в столбцах с D по F в строках со 2 по 4:

    D    E    F    G
2   10   15   20
3   1    2    3
4   20   30   40

Теперь предположим, что я хочу, чтобы значение в столбце D было известно как input1, в столбце E - input2, а в столбце F - input3:

В Вставить > Имя > Определить ...

input1 RefersTo =OFFSET(Sheet1!$D$2,0,0,COUNT(Sheet1!$D:$D),1)
input2 RefersTo =OFFSET(Sheet1!$E$2,0,0,COUNT(Sheet1!$E:$E),1)
input3 RefersTo =OFFSET(Sheet1!$F$2,0,0,COUNT(Sheet1!$F:$F),1)

Теперь, если я напишу свою формулу в столбце G следующим образом, я получу правильные ответы:

G2 =(10*input1+20*input2+30*input3) // 1000
G3 =(10*input1+20*input2+30*input3) // 140
G5 =(10*input1+20*input2+30*input3) // 2000

Помогает ли это вам начать?

1 голос
/ 13 октября 2016

Я бы предложил создать таблицу . Выберите диапазон A1:H4, затем перейдите в виджет Таблицы> Создать> Вставить таблицу с заголовками (на Mac). Это пометит A2:H4 как тело таблицы и A1:H4 как заголовок.

От этого вы получите:

  • Все, что вы поместите в столбец заголовка, определит имя этого столбца автоматически, например, Count, Radius, Density, Height
  • Затем вы можете написать формулу, используя =[@Count]*(10*[@Radius] + 20*[@Density] + 5*[@Height])
  • Когда вы изменяете формулу в ячейке H2, Excel автоматически «копирует» эту формулу во все ячейки в столбце H. Так что больше нет случайных несоответствий в формулах.
  • Когда вам нужно добавить еще одну строку, просто щелкните последнюю ячейку (в нашем примере H4) и нажмите Tab. Excel добавляет еще одну строку, а также обязательно «копирует» формулу в новую строку.
  • Если вам нужна общая строка, добавьте ее с помощью флажка Total Row в виджете Таблицы . Excel добавляет итоговую строку автоматически. Если щелкнуть любую ячейку в итоговой строке, можно изменить «формулу итога» с помощью кнопки «▼ ▲», например, чтобы вычислить среднее вместо суммы в столбце.
  • Если у вас длинная таблица и прокрутите ее вниз, чтобы заголовок больше не отображался, Excel автоматически отображает заголовок столбца вместо имен столбцов (например, Count вместо G).

Я действительно могу порекомендовать видео Вы сосете в Excel с Джоэлем Спольски , который объясняет все это.

1 голос
/ 11 августа 2014

Если вы используете VBA, тогда вы можете выбрать весь столбец и назвать его, скажем, MyCol, в поле имени (верхнее левое поле ввода). В вашем коде вы можете ссылаться на ячейку в столбце MyCol (строка 12), используя следующий код:

Cells(12, Range("MyCol").Column)
1 голос
/ 17 февраля 2013

Добавление к ответу Ремнанта:

Вместо использования

=OFFSET(Sheet1!$D$2,0,0,COUNT(Sheet1!$D:$D),1)
в качестве формулы для input1 , я рекомендую использовать
=Sheet1!$D$2:INDEX(Sheet1!$D:$D,COUNT(Sheet1"$D:$D))

Это дает тот же результат- но является энергонезависимым, то есть пересчитывается только при изменении ячейки предшественника.Это намного лучше в большой модели!

0 голосов
/ 21 марта 2018

Я не полностью просмотрел предыдущие ответы, но думаю, что это ближе к тому, что искал ОП Джейсон Койн.Итак, я надеюсь, что я получу много голосов.; -)

Excel позволяет вашей формуле ссылаться на таблицы и столбцы по имени, если вы «Форматировать как таблицу».Вот статья под названием Использование структурированных ссылок с таблицами Excel , которая подробно рассматривается.

FWIW, похоже, эта функция была доступна с Excel 2007.

Здесьснимок экрана с примером:

enter image description here

Вы должны увидеть формулу в E2: =[@Count] * (10*[@Var1] + 20*[@Var2] + 5*[@Var3]), что довольно близко к тому, что @ jason-Койн хотел напечатать.

Мне не нравится, что вы вынуждены выбирать стиль (или определять новый, если не видите стиль, который вам нравится).Хорошая новость заключается в том, что вы можете переформатировать ячейки так, как пожелаете, не отменяя «табличность».

Настаивает на включении автофильтра.Но автоматический фильтр легко отключить (см. Флажок «Кнопка фильтра» в меню «Дизайн инструментов таблицы»).

Он также настаивает на наличии непустых уникальных значений в строке заголовка (что имеет смысл),Если вы удалите ячейку заголовка или вставите столбец, Excel придумает новое уникальное имя и добавит его для вас.О'оо!

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

Если вы хотите загрузить образец рабочей книги на снимке экрана, вот ссылка: https://filebin.ca/3vfaSDn4NLEA/SampleWorkbook.xlsx

0 голосов
/ 11 июня 2016

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

Range("MyCol").Rows(12)
0 голосов
/ 16 февраля 2013

Используйте функцию Excel, называемую именованными ссылками http://office.microsoft.com/en-us/excel-help/define-named-cell-references-or-ranges-HP005201536.aspx

Чтобы назвать ячейку или диапазон ячеек

1) выберите эту ячейку или диапазон ячеек 2) Введите его имя в поле «Имя» (слева от виджета формул и имеет имя ячейки)

Нельзя использовать имена, которые хорошо конфликтуют с именами ячеек, например, k0

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

= пи * радиус * радиус

0 голосов
/ 18 декабря 2010

Возможно, вы сможете использовать функцию row (). Это возвращает текущую строку, в которой вы находитесь. Таким образом, в зависимости от макета электронной таблицы, вы можете использовать его следующим образом:

=offset(NamedColumn1, row()-1)

-1 означает, что вы говорите, сколько строк нужно сдвинуть вниз от строки 1, а если вы находитесь в строке 1, вы хотите быть 0.

Это работает?

...