簡體   English   中英

Vlookup Excel中的公式數組

[英]Vlookup an array of formulas in Excel

我有一張桌子,兩列

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

我有另一個表,其中包含一些ID和相應的權重:

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

我正在尋找的是一種方法,使用一個公式,使用第一個表中的數據查找第二個表中每個ID的對應概率,將每個ID乘以第二個表中各自的權重,然后求和結果。

我知道解決此問題的簡單方法是在第二個表中添加代理列,並使用vlookup並乘以權重,列出相應的概率,然后對結果求和,但是我覺得必須有一個更優雅的解決方案。

我已經嘗試在Vlookup和Index / Match公式中將第二個表ID作為數組輸入,但是盡管它們都接受范圍作為查找值,但它們都只對范圍的第一個值執行,而不是循環遍歷整個數組。

我想理想的公式是

  1. 為ID設置一個1 x 5的數組,
  2. 根據第一個表中的概率填充一個新的1 x 5數組
  3. 將新數組乘以現有的1x5數組以獲得權重
  4. 求和結果如何

[編輯]因此,對於上面的示例,最終結果將是(50%x 1%)+(25%x 4%)+(15%x 1%)+(5%x 2%)+(5%x 2%)= 1.85%

實際的表比我給出的示例大得多,因此可以使用用於單個vlookup的簡單Sum()函數。

想要聽到任何聰明的解決方案?

您可以使用以下公式:

 {=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%  

使用與TrươngNgọcĐăngKhoa相同的范圍:

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

問候

很好的回應,謝謝大家!

XOR LX,您的答案似乎在所有情況下都有效,這就是我想要的(並且似乎比我原先想的要簡單得多)。 我想我誤解了SUMIF函數的工作方式。

如果有人感興趣,我還找到了自己的(非常復雜的)解決方案:

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

它基本上是通過將事物轉換為4 x 5矩陣來工作的。 我想我仍然更喜歡XOR LX解決方案,因為它很簡單。

謝謝大家的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM