如何从Excel中Checkbox为FALSE的Value列表随机选取文本值?
Excel:筛选Checkbox为FALSE的Value并随机选取其一
假设你的表格中Checkbox列在A列,Value列在B列,数据从第2行开始(A2:A5、B2:B5对应你的示例数据),以下是两种解决方法:
一、Excel 365/2021(支持动态数组)
这种版本可以直接用动态数组函数生成无空值的筛选列表,再随机选取:
- 生成仅含Checkbox为FALSE的Value列表(比如在D2单元格输入):
=FILTER(B:B,A:A=FALSE,"无符合条件的项")
公式会自动把所有符合条件的Value填充到连续单元格,没有空值。
- 直接随机选取一个符合条件的Value(无需单独生成列表,可直接嵌套公式):
=INDEX(FILTER(B:B,A:A=FALSE,"无符合条件的项"),RANDBETWEEN(1,COUNTA(FILTER(B:B,A:A=FALSE,"无符合条件的项"))))
FILTER(B:B,A:A=FALSE):提取所有Checkbox为FALSE的Value组成数组COUNTA(...):统计这个数组的元素数量RANDBETWEEN(1, 数量):生成1到元素数量之间的随机整数INDEX(..., 随机数):取出数组中对应位置的Value
二、旧版Excel(不支持动态数组)
用数组公式组合实现,避免空单元格:
=INDEX(B:B,SMALL(IF(A:A=FALSE,ROW(A:A)),RANDBETWEEN(1,COUNTIF(A:A,FALSE))))
输入完成后,需要按Ctrl+Shift+Enter(数组公式快捷键)确认公式生效。
解释:
IF(A:A=FALSE,ROW(A:A)):筛选出所有Checkbox为FALSE的行号,不符合条件的返回逻辑假COUNTIF(A:A,FALSE):统计Checkbox列中FALSE的总数量RANDBETWEEN(1, 数量):生成随机位置序号SMALL(..., 随机序号):从符合条件的行号中取出对应位置的行号INDEX(B:B, 行号):根据行号提取对应的Value
内容的提问来源于stack exchange,提问作者Şafak
相关产品推荐
相关产品推荐

