google-sheets - 为什么 INDEX(...,COUNTA(...),..) 可以找到一个数组的最后一个值,而不能找到另一个?
问题描述
我正在学习=ARRAYFORMULA
财务电子表格的基本用法:
https://docs.google.com/spreadsheets/d/12cAGuUBzIo0LPbmtqWJZNFgjt94f1ybGoj6x2g0c2Y0/edit?usp=sharing
首先,我=GOOGLEFINANCE
在 B1 使用 C 列中的给定日期范围拉高股票价格
=GOOGLEFINANCE(A1,"price",DATE(2020,1,1),DATE(2020,5,30),"DAILY")
然后,我使用简单的算术乘以 D2 的份额数,然后将公式向下拖动以获得一个不错的值列
=C2*20
然后,我用INDEX
andCOUNTA
拉出 F3 处 D 列的最后一个值 === 太棒了!
=INDEX(AAPL!D2:D,COUNTA(AAPL!D2:D),1)
接下来,我把我的算术公式变成了 G2 的 ARRAYFORMULA === Cool!
=ARRAYFORMULA(C2:C103*20)
当然,ARRAYFORMULA 的问题在于,每次更新日期范围时,我都必须手动更改 G2 中的数组名称。
也就是说,我需要更改对 C2:104 的引用,而不是 C2:C103,以使列与===
Rookie 错误匹配!!!!!!
因此,我使用包含IF(ISBLANK(),...,...)
at J2的 ARRAYFORMULA 变得很聪明
=ARRAYFORMULA(IF(ISBLANK(B2:B),"",C2:C*20))
列 J 保持完全填充任何日期范围的正确值 === !!!!!!!
但是现在=INDEX(AAPL!J2:J,COUNTA(AAPL!J2:J),1)
在 L3 处找不到 J 列中的最后一个值
什么???
我已经尝试了我能想到的一切
如果我使用它会起作用,=INDEX(AAPL!J2:J104,COUNTA(AAPL!J2:J104),1)
但这会破坏目的,因为参考 J:J104 会随着日期的变化而变化
为什么???
解决方案
"L3"
我在两个单元格中以及使用时都得到相同的结果"L5"
:
=ARRAYFORMULA(IF(ISBLANK(B2:B),,C2:C*20))
检查您是否没有返回""
您IF
喜欢的"=ARRAYFORMULA(IF(ISBLANK(B2:B),"",C2:C*20))"
空白字符串(COUNTA(AAPL!J2:J),1)
单元格是您在数组公式中填充空白字符串的单元格。
相反,当您将=INDEX(AAPL!J2:J104,COUNTA(AAPL!J2:J104),1)
单元格限制为仅包含数字的单元格时,它不会在计算中混合字符串和数字,您自然会得到预期的结果。
推荐阅读
- javascript - 如何使用 nextjs 从 url 中删除 /[lang 标签]?
- javascript - 根据使用 ajax 在下拉列表中选择的内容填充我的输入字段
- java - HSTS 标头(严格传输安全)并非总是如此。(有时得到有时没有)
- vim - How to update CocVim packages by bash and quit automatically?
- haskell - 安装错误 Agda: unrecognized option `x'
- python - 如果手动使用 BCE 损失,所有梯度值计算为“无”
- java - 如何解析包含单声道评估的 SPEL 表达式(将 Mono 作为输入传递给 SPEL ExpressionParser 实例)
- grafana - Grafana 查询 metric.counter 下的特定标签属性
- android - android.support.v7.widget.RecyclerView$ViewHolder 的类文件
- java - 我需要为谷歌 MlKit 获取 GMS 吗?