如何用动态数组公式计算价格序列增量并将首项设为#N/A?
解决方案
针对西班牙语Excel设置(参数分隔符为;),以下两种动态数组公式可实现首项为#N/A、其余为价格增量的需求:
方法1:VSTACK + NA()函数(推荐)
直接使用Excel内置的NA()函数生成标准#N/A值,再与增量序列拼接:
=VSTACK(NA(); DROP(价格序列;1)-DROP(价格序列;-1))
- 说明:
DROP(价格序列;1)移除价格序列首项,DROP(价格序列;-1)移除末项,两者相减得到完整的增量序列;VSTACK(NA(); ...)将标准#N/A值放在序列最开头,避免文本格式的#N/A导致拼接失败。
方法2:INDEX + SEQUENCE构造
通过行号判断生成首项#N/A,其余行计算差值:
=IF(SEQUENCE(ROWS(价格序列))=1; NA(); INDEX(价格序列;SEQUENCE(ROWS(价格序列)-1)+1)-INDEX(价格序列;SEQUENCE(ROWS(价格序列)-1)))
- 说明:
SEQUENCE(ROWS(价格序列))生成与价格序列行数一致的行号;第一行返回NA(),后续行通过INDEX分别取当前行和上一行的价格计算差值。
为什么之前的VSTACK拼接#N/A失败?
直接输入的#N/A是文本字符串,并非Excel识别的标准错误值,与数值数组拼接时会触发类型不匹配,仅返回单个无效值;而NA()函数生成的是Excel原生的错误值,可正常与数值数组组合。
内容的提问来源于stack exchange,提问作者vsoler
相关产品推荐
相关产品推荐

