excel - 如何将“枚举”转换为数组
问题描述
我正在尝试计算 sum(a.*b) = a[1] * b[1] + a[2] * b[2]+.....
长度为 n 的数组 a 存在于工作表中。b 的值虽然不直接存在。要获得 b,需要有一列数据和 n 个索引。b[i] = 数据[索引[i]]
找到 sum(a.*b) 的一种方法是首先使用 INDEX(data, indices) 缓冲 b 的值,然后使用 SUM(a * b)。我希望它在一个没有缓冲的单元格中完成。所以我尝试将 b 替换为 b 的公式,如 SUM(a * INDEX(data, index))。但是 excel 认为 INDEX(data, indices) 是可迭代的,并给了我 [SUM(a * b[1]), SUM(a * b[2]), ...]
如何告诉 excel 将 INDEX(data, index) 作为数组?
解决方案
在 Excel 的早期版本(O365 之前)中,您必须使用以下操作来使用索引传递数组,如此处所述:
=SUMPRODUCT(D3:D4*INDEX(A2:A10,N(IF({1},B2:B3))))
1 {1} 周围的花括号不是绝对必要的,但我倾向于将它们留在里面以表明我正在使用这个技巧。
推荐阅读
- apache-kafka - Kafka Streams Topology 卡在 num.stream.threads=50 和 100 个分区中
- ios - 在 UIViewController 中检测结束拖动
- amazon-web-services - 如何使用 AWS CLI 获取最近启动的 EC2 实例?
- javascript - m3u8 流播放可以依赖于不同的编解码器
- python - Pip 一直返回相同的错误 (Hide_cursor)
- javascript - 连接到商店但不重新渲染视图的组件
- php - 我应该使用有限字段查询还是全字段对象?
- php - 将图像添加到现有的 MySql 记录
- java - 在 UI 中执行按钮操作时停止 ScheduledExecutorService
- aws-sdk - AmazonCloudWatchAsyncClient 线程配置