Использование функции ВПР в формуле массива в таблицах Google

По сути, я хочу дать числовые оценки буквенным оценкам и суммировать их. В Excel включение функции LOOKUP в формулу массива работает:

{=SUM(LOOKUP(grades, scoringarray))}

С функцией VLOOKUP это не работает (получается только балл за первый класс). Таблицы Google, похоже, не имеют функции LOOKUP, и VLOOKUP не работает таким же образом, используя:

=SUM(ARRAYFORMULA(VLOOKUP(grades, scoresarray, 2, 0)))

or

=ARRAYFORMULA(SUM(VLOOKUP(grades, scoresarray, 2, 0)))

Возможно ли это сделать (но у меня неправильный синтаксис)? Можете ли вы предложить метод, который позволяет проводить вычисления в одной простой ячейке, вместо того, чтобы прятать поиски где-то еще и затем суммировать их?


person Sam Brightman    schedule 26.08.2008    source источник


Ответы (5)


Боюсь, я думаю, что ответ отрицательный. Из текста справки на http://docs.google.com/support/spreadsheets/bin/answer.py?answer=71291&query=arrayformula&topic=&type=

Настоящая сила ARRAYFORMULA проявляется, когда вы берете результат одного из этих вычислений и заключаете его в формулу, которая принимает аргументы массива или диапазона: SUM, MAX, MIN, CONCATENATE,

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

person paulmorriss    schedule 26.08.2008

Таблицы Google не имеют функции ПРОСМОТР

Предположительно не тогда, но есть сейчас:

Пример SO27774

grades Лист1!A2:A4
scoringarray Лист1!A2:B4

person pnuts    schedule 27.07.2018

Я все еще не вижу формул в вашем примере (только значения), но это именно то, что я пытаюсь сделать с точки зрения результата; очевидно, я уже могу делать это "рядом" и суммировать отдельно - ключ для меня делать это в одной ячейке.

Сегодня утром я еще раз посмотрел на это - использование функции MATCH для поиска работает в формуле массива. Но тогда функция INDEX не работает. Я также безуспешно пытался использовать его с OFFSET и INDIRECT. Наконец, функция CHOOSE, по-видимому, не принимает диапазон ячеек в качестве своего списка для выбора - диапазон уменьшается до одного значения (первая ячейка в диапазоне). Также следует отметить, что функция CHOOSE принимает только 30 значений на выбор (согласно документации). Все очень раздражает. Однако теперь у меня есть рабочее решение в одной ячейке: использование функции CHOOSE и явное перечисление ячеек результатов по одной в таких аргументах:

=ARRAYFORMULA(SUM(CHOOSE(MATCH(D1:D8,Lookups!$A$1:$A$3,0),
                                     Lookups!$B$1,Lookups!$B$2,Lookups!$B$3)))

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

Я бы, конечно, приветствовал более элегантное решение!

person Sam Brightman    schedule 27.08.2008

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

В решении используется следующее:

=ARRAYFORMULA(SUM(INDIRECT(ADDRESS(MATCH(), MATCH())))

в качестве замены функции vlookup.

Я надеюсь, что это поможет кому-то!

person HHains    schedule 06.02.2013

вы можете легко сделать это, жестко запрограммировав его в таблице VR:

=SUM(IFERROR(ARRAYFORMULA(VLOOKUP(A2:A, {{"A", 6};
                                         {"B", 5};
                                         {"C", 4};
                                         {"D", 3};
                                         {"E", 2};
                                         {"F", 1}}, 2, 0)), ))

0

или вы можете использовать некоторые боковые ячейки с правилами:

=SUM(IFERROR(ARRAYFORMULA(VLOOKUP(A2:A, E2:F, 2, 0)), ))

6


альтернативы: https://webapps.stackexchange.com/a/123741/186471< /sub>

person player0    schedule 16.03.2019