Excel与Google Sheets:按日期条件随机抽取指定列数值的公式需求
跨Excel与Google Sheets的日期匹配随机取值方案
Excel 可用公式
- 兼容旧版Excel的数组公式(输入后需按
Ctrl+Shift+Enter触发):=INDEX($A$1:$A$30;INDEX(LARGE(($B$1:$B$30=D2)*ROW($A$1:$A$30);ROW($A$1:$A$30));1+INT(RAND()*COUNTIF($B$1:$B$30;D2)))) - Excel 365及以上版本的动态数组公式(自动批量填充结果):
=MAP(D2:D4,LAMBDA(a,LET(x,FILTER(A2:A11,B2:B11=a),@SORTBY(x,RANDARRAY(COUNT(x))))))
Google Sheets 适配方案
Google Sheets不支持Excel的LAMBDA、LET函数,可使用以下两种替代公式:
单单元格逐个填充
在F2单元格输入公式后,下拉填充至目标行:
=INDEX(FILTER(A:A,B:B=D2),RANDBETWEEN(1,COUNTA(FILTER(A:A,B:B=D2))))
逻辑:先用FILTER筛选出指定日期对应的所有A列数值,再用RANDBETWEEN随机选取其中一个位置的值。
批量自动生成整列结果
在F2单元格输入公式,自动生成D2:D4范围内所有日期对应的随机值:
=BYROW(D2:D4,LAMBDA(date,INDEX(FILTER(A:A,B:B=date),RANDBETWEEN(1,COUNTA(FILTER(A:A,B:B=date))))))
逻辑:通过BYROW遍历每个目标日期,对每个日期执行筛选+随机取值操作,无需手动下拉。
内容的提问来源于stack exchange,提问作者Artemy Panin
相关产品推荐
相关产品推荐

