excel 根据上次选取名称的时间,从过滤列表中选取随机名称

tyu7yeag  于 2023-03-13  发布在  其他
关注(0)|答案(2)|浏览(114)

我有一个工作簿,里面有2张纸,分别名为“挑选者”和“名称”-这是为一组足球队的“团队挑选者”准备的。
Names工作表中有一个名字列表(A列)、它们的可用性(B列)、Date of Last Pick(C列)和自上次挑选以来的周数(D列)(这也有一个函数=INT(($F$2-C4)/7)-它确定自上次挑选以来已经过去了多少周)。
Names Sheet
在Pickers工作表中,我在A列中有一个筛选器,该筛选器筛选在任何给定周=FILTER(Table2[Names],LEN(Table2[Available?]))可用的名称
Pickers
在E4中,我想从这个过滤列表中输出一个随机名称,基于是否有6个或更多的星期过去了,因为他们最后一次“挑选”。我目前可以让它从过滤列表中输出一个随机名称,但如果我试图添加任何额外的条件,我会得到一个错误。
我最好喜欢它,如果这可以在一个按钮点击,但在E4中输入也可以工作。
我也试过一个IF函数,它试图在“上次挑选以来的周数”列中查找,“如果为假则返回值”作为“错误”-它总是返回“错误”。不知道还能做什么。

6rqinv9w

6rqinv9w1#

下面是一个选项,不使用VBA:

F2中的公式:

=@SORTBY(FILTER(A2:A16,(B2:B16="Y")*(D2:D16>5),"None"),RANDARRAY(COUNTIFS(B2:B16,"Y",D2:D16,">5")))

或者,首先使用LET()存储过滤后的范围:

=LET(x,FILTER(A2:A16,(B2:B16="Y")*(D2:D16>5),"None"),@SORTBY(x,RANDARRAY(ROWS(x))))
c90pui9n

c90pui9n2#

使用带 * 的多个FILTER条件生成要从中选取的列表:

=FILTER(RangeToFilter,(Criteria1)*(Criteria2))

在示例中,第二标准是(Today()-Table2[Date of last pick])>42
公式:

=FILTER(Table2[Names],(Table2[Available?]="Y")*((TODAY()-Table2[Date of last pick])>$F$2))

结果:

如果需要,使用公式计算 * 周 * 而不是 * 天 *。

相关问题