【Excel笔记_5】 LET 函数中数据范围不连续的处理方法

LET 函数中,如果数据范围是不连续的(比如 DK4:DK176DK188:DK242),直接使用 ABS 计算偏差会导致错误,因为 Excel 不支持对多个不连续区域执行数学运算。

正确的方法

可以使用 VSTACK(Excel 365/2021 支持)或 CHOOSE(适用于更早的 Excel 版本)将不连续区域合并,然后进行计算。

方法 1:使用 VSTACK(Excel 365/2021)
excel 复制代码
=LET(data, VSTACK(DK4:DK176, DK188:DK242), mean, AVERAGE(data), AVERAGE(ABS(data - mean)))

解释:

  1. VSTACK(DK4:DK176, DK188:DK242) 把两块不连续的数据合并成一个连续的数组。
  2. mean 计算合并后数据的均值。
  3. ABS(data - mean) 计算绝对偏差。
  4. AVERAGE(...) 计算 MAD。

方法 2:使用 CHOOSE(适用于 Excel 2019 及以下版本)
excel 复制代码
=LET(data, CHOOSE({1,2}, DK4:DK176, DK188:DK242), mean, AVERAGE(data), AVERAGE(ABS(data - mean)))

解释:

  • CHOOSE({1,2}, DK4:DK176, DK188:DK242) 将两个不连续区域合并成一个数组。
  • 后续计算逻辑与 VSTACK 方法相同。

如果你的 Excel 版本不支持 LET

可以用数组公式:

excel 复制代码
=AVERAGE(ABS((DK4:DK176, DK188:DK242) - AVERAGE(DK4:DK176, DK188:DK242)))

然后按 Ctrl + Shift + Enter 结束输入,使其成为数组公式。

这应该能正确计算 MAD,即使数据是不连续的!😊

相关推荐
DIY机器人工房1 小时前
[6-1] TIM定时中断 江协科技学习笔记(45个知识点)
笔记·科技·stm32·单片机·学习
愚润求学2 小时前
【Linux】自定义shell的编写
linux·运维·服务器·开发语言·c++·笔记
梁小憨憨3 小时前
循环卷积(Circular Convolutions)
人工智能·笔记·深度学习·机器学习
Lester_11013 小时前
嵌入式学习笔记 - 关于单片机的位数
笔记·单片机·学习
菜一头包3 小时前
Lua学习笔记
笔记·学习·lua
夏季疯3 小时前
学习笔记:黑马程序员JavaWeb开发教程(2025.3.31)
java·笔记·学习
李二。4 小时前
wordpress自学笔记 第二节: 3种独立站商城横幅的制作
服务器·笔记·wordpress
星尘库5 小时前
excel单元格如果是日期格式,在C#读取的时候会变成45807,怎么处理
开发语言·c#·excel
Dovis(誓平步青云)6 小时前
解构C++高级命名空间:构建空间作用域·控制兼容
开发语言·c++·经验分享·笔记·学习方法
DoorToZen6 小时前
理解 `.sln` 和 `.csproj`:从项目结构到构建发布的一次梳理
经验分享·笔记·其他·前端框架·c#·.net