【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,即使数据是不连续的!😊

相关推荐
智者知已应修善业2 小时前
【51单片机用数码管显示流水灯的种类是按钮控制数码管加一和流水灯】2022-6-14
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
孞㐑¥5 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
Fireworkitte7 小时前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
sealaugh328 小时前
aws(学习笔记第四十八课) appsync-graphql-dynamodb
笔记·学习·aws
freexyn10 小时前
Matlab自学笔记六十一:快速上手解方程
数据结构·笔记·matlab
很小心的小新11 小时前
12、jvm运行期优化
java·开发语言·jvm·笔记
Prodigy_kyw12 小时前
VBA初学3----实战(VBA实现Excel转csv)
excel·vba·csv
寻丶幽风13 小时前
论文阅读笔记——NoPoSplat
论文阅读·笔记·三维重建·3dgs·相机位姿·dustr
红衣女妖仙15 小时前
JXLS 库导出复杂 Excel
java·excel·jxls·java 导出 excel
西岭千秋雪_15 小时前
Redis缓存架构实战
java·redis·笔记·学习·缓存·架构