如果选择了其中一个条目,则过滤掉所有用户的条目

时间:2017-08-17 14:33:10

标签: google-sheets

我正在尝试编写一个公式,允许您将最多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 个答案:

答案 0 :(得分:1)

您需要针对每个用户使用一些标记来指示他们的参赛作品是否仍有资格参赛。以下是一个示例:如果我们尚未从该用户中选择,则符合条件(L)为True。通过选择Available(O)列中的可用内容,手动填充Column Selected(N)。公式是:

对于符合条件的列(显示的第二行):

=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     |
+--------+---------+--------+------------+-----------+--+----------+------------+