2017-08-17 77 views
0

我正在嘗試編寫一個公式,該公式將允許您將最多3個值放入池中(每個人),然後選擇其中一個值所有3個潛在值都從池中刪除。如果選擇其中一個,則篩選出所有用戶的條目

我目前的公式很長,但相當簡單,因爲它採用每個用戶的值,並根據它們是否正在使用來增加/減少它們。

=(SUMIF($I$2:$I$50, $A24, $L$2:$L$50) + SUMIF($J$2:$J$50, $A24, $L$2:$L$50) + SUMIF($K$2:$K$50, $A24, $L$2:$L$50)) - (SUMIF($A$2:$A$20, $A24, $L$2:$L$20) + SUMIF($B$2:$B$20, $A24, $L$2:$L$20) + SUMIF($C$2:$C$20, $A24, $L$2:$L$20) + SUMIF($D$2:$D$20, $A24, $L$2:$L$20) + SUMIF($E$2:$E$20, $A24, $L$2:$L$20)) 

的限制這裏的因素是,每個用戶被加入的3個值的電位到池,但是當選擇了一個它僅減去從池中,然後留下其他2其中池無效作爲整個。

僅供參考我已經在複製內容到後續片材

https://docs.google.com/spreadsheets/d/1tbL1WuaUoR8JM8cndTBiKnoaLm-UxCaddpSOJbCVmiM/edit?usp=sharing

有誰有如何正確地從池中刪除,而不僅僅是一個被選擇的所有可用選項的想法?我從如何使代碼可以工作中得到一些想法,但是我試圖使它成爲一種自動化的公式,而不是需要專門「運行」來計算它的事情。

回答

1

您需要對每個用戶標記一些標記,以指示他們的條目是否仍有資格參加。這裏是一個例子:如果我們還沒有從該用戶中選擇,那麼列合格(L)爲真。已選列(N)通過選擇可用(O)列中的可用內容手動填充。該公式是:

對於合格柱(示出第二行):

=and(isna(match(I2, N$2:N, 0)), isna(match(J2, N$2:N, 0)), isna(match(K2, N$2:N, 0))) 

它說,既沒有I2,J2,或K2匹配任何在N.

而在柱O,只有一個需要數組公式:

={filter(I2:I, L2:L); filter(J2:J, L2:L); filter(K2:K, L2:L)} 

該濾波器濾除不符合資格的用戶和使用堆疊陣列符號{}在一列中的食物。

+--------+---------+--------+------------+-----------+--+----------+------------+ 
| User | Food 1 | Food 2 | Food 3 | Eligible | | Selected | Available | 
+--------+---------+--------+------------+-----------+--+----------+------------+ 
| User A | Chicken | Pear | Watermelon | TRUE  | | Grape | Chicken | 
| User B | Garlic | Grape | Rice  | FALSE  | | Beef  | Potato  | 
| User C | Beef | Corn | Salt  | FALSE  | |   | Pear  | 
| User D | Potato | Pepper | Orange  | TRUE  | |   | Pepper  | 
|  |   |  |   |   | |   | Watermelon | 
|  |   |  |   |   | |   | Orange  | 
+--------+---------+--------+------------+-----------+--+----------+------------+ 
+0

優秀的解釋,我知道我需要一個領域來將用戶鏈接到他們的選項,但我不知道如何去做。 – Josh

相關問題