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

如何将Excel中SIN函数数组与RAND函数结合添加噪声并固定随机值

将SIN与RAND函数结合生成带随机扰动的正弦趋势

一、合并为单个函数(每个单元格独立随机扰动)

要让每个正弦值对应独立的随机因子,核心是生成和正弦数组尺寸一致的随机数组。Excel 365/2021及以上版本的RANDARRAY函数可以直接生成指定大小的随机数组,和原SIN数组做元素级运算即可。

示例1:添加随机偏移扰动

=TRANSPOSE((SIN(RADIANS(SEQUENCE(31)*15)) + 1) + RANDARRAY(31, 1, -0.1, 0.1, TRUE))
  • SEQUENCE(31)替代原ROW(INDIRECT("1:31")),更简洁地生成1到31的序列
  • RANDARRAY(31,1,-0.1,0.1,TRUE)生成31行1列的随机数,范围在-0.1到0.1之间(可根据需求调整范围),最后一个参数TRUE表示生成小数
  • 两个数组直接相加,实现每个正弦值单独叠加随机扰动

示例2:添加随机缩放因子

如果需要让正弦值的幅度有随机波动,可改用乘法:

=TRANSPOSE((SIN(RADIANS(SEQUENCE(31)*15)) + 1) * RANDARRAY(31, 1, 0.9, 1.1, TRUE))

这里随机因子范围设为0.9到1.1,让每个正弦值在原基础上有±10%的幅度变化。

二、固定随机值(无需复制粘贴为值)

方法1:启用迭代计算固定随机数组

  1. 打开Excel选项:文件>选项>公式,勾选「启用迭代计算」,设置迭代次数为1
  2. 在任意空白单元格(比如B1)输入公式,生成一次随机数组后固定:
    =IF(B1="", RANDARRAY(31,1,-0.1,0.1,TRUE), B1)
    
  3. 主函数引用这个固定的随机数组:
    =TRANSPOSE((SIN(RADIANS(SEQUENCE(31)*15)) + 1) + B1)
    
  • 首次计算时B1会生成随机数组,之后因迭代计算,单元格会保留当前值,不再自动更新
  • 需要重新生成随机值时,删除B1内容后按回车即可

方法2:用Power Query生成静态数组

Power Query生成的数组是静态的,仅在手动刷新时更新:

  1. 点击「数据」选项卡>「获取数据」>「自其他来源」>「空白查询」
  2. 在Power Query编辑器的公式栏输入以下M代码(可调整扰动范围):
    let
        Numbers = {1..31},
        SINValues = List.Transform(Numbers, each (Sin(Radians(_*15)) + 1)),
        RandomValues = List.Generate(()=>0, each _ < List.Count(SINValues), each _+1, each Number.RandomBetween(-0.1,0.1)),
        CombinedValues = List.Zip({SINValues, RandomValues}) |> List.Transform(List.Sum),
        Transposed = {CombinedValues},
        ResultTable = Table.FromRows(Transposed, null)
    in
        ResultTable
    
  3. 点击「关闭并上载」,将结果加载到工作表。后续需要更新随机值时,右键点击生成的表>「刷新」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:45:30