You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel RANDARRAY公式需求:生成合规的每周随机患者抽检安排

药物检测随机抽检Excel实现方案

核心需求梳理

  • 65位患者(编号1-65),每周每人必须被抽检2次
  • 单日抽检名单中无重复患者编号
  • 每周的抽检日期分配模式(即患者被分配到哪两天)随机且不与以往重复

分步实现方案

1. 生成患者的随机抽检日期(每人2天,无重复)

在辅助区域(比如K2:K66,对应1-65号患者),使用以下公式为每位患者随机分配2个不同的星期几(用1=周日、2=周一…7=周六表示):

=TEXTJOIN(",",TRUE,SORT(RANDARRAY(1,2,1,7,TRUE)))
  • 说明:RANDARRAY(1,2,1,7,TRUE)生成2个1-7的不重复随机数,SORT排序保证日期顺序统一(避免"1,3"和"3,1"被误判为不同模式),TEXTJOIN用逗号拼接成字符串方便后续处理。

2. 确保每周抽检模式不重复

为了避免每周的日期分配模式重复,需要生成当前周模式的唯一标识并和历史记录对比:

  1. 在单元格L1生成当前周模式的哈希值:
    =HASH(TEXTJOIN("|",TRUE,K2:K66))
    
  2. 在另一个工作表(比如历史记录)中记录每周的哈希值,每次生成新周模式时,用以下公式校验是否重复:
    =IF(COUNTIF(历史记录!A:A,L1)>0,"模式重复,请重新生成","模式可用")
    
    如果显示“模式重复”,按F9刷新公式重新生成日期分配。

3. 生成每日抽检名单

现在将患者按分配的日期归类到对应星期的行中(假设A2:J8是7行10列的抽检表,对应周日到周六):

  • 以周日(第2行,对应日期标识1)为例,在A2输入以下公式并向右填充到J2:
    =INDEX($A$2:$A$66,SMALL(IF(ISNUMBER(SEARCH("1,",$K$2:$K$66))+ISNUMBER(SEARCH(",1",$K$2:$K$66)),ROW($K$2:$K$66)-1,""),COLUMN(A1)))
    
    按Ctrl+Shift+Enter(Excel 365版本可直接回车),会自动列出所有被分配到周日的患者编号。
  • 同理,修改公式中的"1"为"2"(周一)、"3"(周二)…"7"(周六),分别填充到对应行(A3:J3到A8:J8)。
  • 说明:公式会自动筛选出日期组合包含对应数字的患者,且单日名单无重复(每个患者仅被分配到2天,且日期组合唯一)。

4. 自动刷新与维护

  • 每周生成新抽检模式时,选中K2:K66区域按F9刷新,校验哈希值确认不重复后,再更新每日抽检名单。
  • 若需固定某周抽检结果,选中对应区域右键「复制」,再右键选择「粘贴值」即可锁定数据,避免公式刷新。

内容的提问来源于stack exchange,提问作者Clarisa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:23:26