2015-05-21 3 views
0

Я помогаю другу с некоторым анализом данных в Excel. Вот как наши данные выглядит следующим образом:Значение поиска Excel для нескольких критериев и нескольких столбцов

Car producer | Classification | Prices from 9 different vendors in 9 columns 
AUDI | C | 100 200 300 400 500 600 700 800 900 
AUDI | C | 100 900 800 200 700 300 600 400 500 
AUDI | B | .. .. 

Теперь для каждой классификации и каждого производителя, мы подготовили список, который показывает, какие из поставщиков 9 имеет предлагает самые низкие цены (с точки зрения подсчета, так, например, есть 2 автомобиля от AUDI в классе C, поэтому поставщик A будет предлагать самую низкую цену для обоих).

Что нам нужно: способ рассчитать среднюю цену для этого поставщика. Итак, если мы увидим, что у продавца A самая низкая цена для автомобилей AUDI в классе C, то мы хотим узнать среднюю цену для продавца A для этих автомобилей.

Я довольно сильно сгорел, так как не могу использовать «стандартный» подход с индексом-соответствием, поскольку цены хранятся в 9 разных столбцах.

Я предложил использовать длинную цепочку if: = if (vendor = A, averageif (введите критерии и выберите столбец поставщика A для средних значений), если (поставщик = B, средний (введите критерии и выберите столбец поставщика B для средних значений), ... и т.д.).

Но этот метод явно ограничен, и не очень хорошо масштабироваться до более высоких измерений.

Мы также хотели бы избегайте использования каких-либо дополнений.

ответ

1

Вам понадобится создать отдельную таблицу со всеми уникальными классификациями в строках и всех дилерах в столбцах (то же, что и вы rs, но с удалением повторяющихся строк). Затем, в каждой ячейке, возьмите среднюю цену для этой классификации * поставщика. Это можно сделать, используя комбинацию sumif/countif. Например, если ваша вторая таблица была столбец для классификации в клетках M2: M [конец], расчет средней цены для класса Audi C, предлагаемого производителем 1 может быть:

=sumif(C$2:C$[end],"="&$M2,$B$2:$B$[end])/countif($B$2:$B$[end],"="&$M2) 

Это будет выглядеть примерно так : summarizing table data using sumif/countif

Тогда вы можете найти дешевого продавца, сопоставляя минимальную цену. Например, самый дешевый поставщик для Audi класса C в моем примере изображение будет:

=index($N$1:$V$1,match(min($N2:$V2),$N2:$V2,0)) 
+0

Хорошо, что это именно то, что я понял несколько минут назад. Я приму ваш ответ, если никто другой не найдет прямого подхода. Кроме того, что я использую averageif, который, похоже, имеет ту же цель, что и sumif/countif. – Olorun

+0

Хороший вопрос! Благодарю. – delgadom

0

Много это может быть сделано с помощью сводных таблиц. Если это одно, я бы пошел по этому маршруту, если его нужно автоматизировать, а затем попробуйте использовать многоконтактный VLOOKUP (его нужно ввести как формулу матрицы: CTRL + ALT + SHIFT). Это просто пример, а не на основе ваших данных:

{=VLOOKUP(A11&B11,CHOOSE({1\2},A2:A7&B2:B7,C2:C7),2,0)} 

Лучшее объяснение дано здесь chandoos сайте: http://chandoo.org/wp/2014/10/28/multi-condition-vlookup/