Google Sheets如何调整公式从指定范围随机选取非空白单元格值
Google Sheets 命名范围随机取非空值实现方法
原公式的问题
你当前在用的随机取值公式:=INDEX(IntroLines,RANDBETWEEN(1,ROWS(IntroLines)),1)
逻辑是直接取整个命名范围的总行数作为随机数上限,没有做非空校验,所以会随机抽到范围内的空白单元格。不需要删除命名范围内的空白单元格,直接替换成下面的公式就能实现仅返回非空值的效果。
替换公式
把原公式替换为以下内容即可:=INDEX(FILTER(IntroLines, IntroLines<>""), RANDBETWEEN(1, COUNTA(IntroLines)), 1)
公式各部分作用
FILTER(IntroLines, IntroLines<>""):先过滤命名范围,剔除所有空单元格(包括公式返回""的假空单元格),全程不会改动原命名范围里的内容COUNTA(IntroLines):统计命名范围里非空单元格的总数量,作为随机数的生成上限,保证随机出来的行号不会超出过滤后非空列表的长度- 外层
INDEX按照生成的随机行号,从过滤好的非空列表里取对应值,不会返回空结果
补充:如果你的命名范围包含多列,只需要把公式最后面的列序号参数从1改成你要取值的目标列序号就行。
内容的提问来源于stack exchange,提问作者Michael Swarts
相关产品推荐
相关产品推荐

