2015-10-28 8 views
0

У меня есть одна таблица с двумя столбцамиВПР массив формул в Excel

ID  Probability 
A  1% 
B  2% 
C  3% 
D  4% 

У меня есть еще один стол, с некоторыми идентификаторами и соответствующими весами:

ID Weight 
A 50% 
D 25% 
A 15% 
B 5% 
B 5% 

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

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

Я попытался ввести идентификаторы второй таблицы в виде массива как в формулах Vlookup, так и в Index/Match, но в то время как оба принимают диапазон в качестве значения поиска, оба выполняются только для первого значения диапазона вместо циклического перехода весь массив.

Думаю, в идеале формула будет

  1. установки массива 1 х 5 для идентификаторов,
  2. заполнить новый массив 1 х 5 на основе вероятностей из первой таблицы
  3. умножать новый массив в существующем массиве 1x5 для весов
  4. Суммы любого результата

[править] Таким образом, для приведенного выше примера, то конечный результат был бы (50% x 1%) + (25% x 4%) + (15% x 1%) + (5% x 2%) + (5% x 2%) = 1,85%

Реальные таблицы намного, намного больше, чем примеры, которые я дал, поэтому простая функция Sum() для отдельных vlookups отсутствует.

Любить слышать о любых умных решениях?

+0

Я думаю, вы должны показать нам желаемый результат. «Изображение стоит тысячи слов» - очень истинная поговорка о переполнении стека. –

+0

Несомненно. Для вышеприведенного примера выход будет равен: (50% x 1%) + (25% x 4%) + (15% * 1%) + (5% x 2%) + (5% x 2%) = 1,85% Это помогает? – jwil408

+0

№ Обновить исходный вопрос. –

ответ

0

Используя те же диапазоны, как определяется TRUONG NGOC Đăng Хоа:

=SUMPRODUCT(SUMIF(A1:A4,D1:D5,B1:B4),E1:E5)

С уважением

0

Вы можете использовать эту формулу:

{=SUM(LOOKUP(D1:D5;A1:A4;B1:B4)*E1:E5)} 

С таблицей в этом:

A B C D E 
1 A 1%  A 50% 
2 B 2%  D 25% 
3 C 3%  A 15% 
4 D 4%  B 5% 
5    B 5% 
+0

Это будет работать, только если записи в формате A1: A4 остаются строго в алфавитном порядке. –

0

Отличный ответ, спасибо, ребята!

XOR LX, ваш ответ, казалось, работал во всех случаях, и это то, что я искал (и кажется, что это было намного проще, чем я изначально думал). Я думаю, что неправильно понял, как работает функция SUMIF.

В случае, если кто-то интересно, я нашел свой собственный (тупо комплекс) решение:

=SUM(IF(A1:A4=TRANSPOSE(D1:D5),1,0)*TRANSPOSE(E1:E5)*B1:B4)

Что в основном работает путем преобразования вещь в 4 х 5 матрицу вместо этого. Я думаю, что я по-прежнему предпочитаю решение XOR LX для его простоты.

Цените помощь, все!