excel - 如何使用动态数组进行结构化引用?
问题描述
这是这个较早线程的后续问题
我有来自 sequence() 函数的输出。我想运行一个计算来总结 sequence() 函数的输出。特别是,我希望它是结构化的,以便我的计算是正确的,即使基础数据获得了额外的行。我将使用示例数据更详细地描述这一点。
假设我的 sequence() 函数的输出如下所示
name source
banana fruits
orange fruits
peach fruits
dog pets
fish pets
cat pets
现在假设我想创建一个计算,collated
用一个简单的条件总结数据集。
如果这是一张桌子,我会做这样的事情-countifs(tblCollated[name], tblCollated[source], "pets")
无论如何,关键是我不能这样做,因为我不能将 sequence() 的输出放入表中。
解决方案
使用 LET 和溢出范围引用,您可以创建更大的自引用复杂函数;
例如,分配您想要的数据列,col = 2
然后从溢出范围引用中索引第二列,$A$2#
会给出一个溢出列表,其中包含您可以操作的数据
=LET(col,2,list,INDEX($A$2#,,col),list)
然后,您可以进一步操作该列表,以便匹配“Pets”的计数为:
=LET(col,2,list,INDEX($A$2#,,col),COUNTIF(list,"Pets"))
使用更动态的 LET 公式,可以在需要时更轻松地快速更改公式,并且使其更具可读性。
或者您可以在该列表中使用过滤器:
=LET(col,2,list,INDEX($A$2#,,col),ROWS(FILTER(list,list="Pets")))
并允许错误处理(感谢@TM):
=LET(col,2,list,INDEX($A$2#,,col),IFERROR(ROWS(FILTER(list,list="Pets")),0))
推荐阅读
- javascript - NW.js 当你的主文件是 JS 文件时如何调试?
- python - 在 Networkx Python 中乘以权重
- python - 使用第二个标题的字符串值创建新列
- ruby - AWS Lambda:Ruby 函数无法加载 gem
- android - 更改背景颜色 onClick()
- python - 在递增的 x 轴上绘制值
- c# - Selenium C# - 模拟后运行 selenium 驱动程序时出现异常
- google-app-engine - 502 服务器错误:可能是我的免费试用期结束造成的吗?
- angular - 在 scss 中导入全局样式而不在每个组件上复制 scss
- docker-compose - 使用 docker-compose up 后,带有卷安装的 Docker 容器会立即退出