arrays - 基于两个或多个查找键填充列的数组公式?
问题描述
有一个三列表。前两列中的每一行都有一个唯一标识符(但各列中的值不是唯一的)。第三列包含表中每一行的值。
然后是另一个三列表。前两列中的每一行都是要在第一个表中查找的值,以用相应的值填充第三列。所以我一直试图想出一个数组公式来填充第三列。
- 我不想要解决方案的脚本,只想要公式
- 我不想分发单行公式,只分发数组公式
解决方案
这里使用vlookup、query、arrayformula等获取求和数据,假设A21到B25为唯一master,I16到K19是分布数据,I16到J19是A21到B25的唯一master,如果数据与我的假设不同,实际上改变它们:
=arrayformula(vlookup(arrayformula(len({A21:A25}) & ":" & len ({B21:B25}) & ":" & {A21:A25} & {B21:B25}),query({arrayformula(len({I16:I19}) & ":" & len ({J16:J19}) & ":" & {I16:I19} & {J16:J19}),arrayformula(if(isnumber(K16:K19),K16:K19,0))},"select Col1, sum(Col2) group by Col1"),2,false))
我将两列与每列的标识符长度和冒号结合起来,因为我希望我的列组合是唯一的,如果我结合 'aaa' 和 'aaaa' 将与 'aaaa' 和 'aaa' 相同,但如有必要可以省略缩短公式:
=arrayformula(vlookup(arrayformula({A21:A25} & {B21:B25}), query({arrayformula( & {I16:I19} & {J16:J19}), arrayformula(if(isnumber(K16:K19), K16:K19, 0))}, "select Col1, sum(Col2) group by Col1"),2,false))
推荐阅读
- c# - 用于块文件上传器的 C# .NET Core 5 ApiController Action
- javascript - 对于每个输入,如果它们更改为已检查,则将已检查输入的输入 ID 存储在变量中
- reactjs - 在 React 中将类名从一个组件传递到另一个组件
- python - 为什么这个 fastai.tabular 回归不起作用?
- java - HTTP 404 Not Found - 源服务器没有找到目标资源的当前表示或不愿意透露存在的表示
- firebase - 有没有办法设置 Firebase 刷新令牌的过期时间?
- python - pytest 失败并显示“错误:找不到文件或目录:和”
- python - Python - 拆分 DataFrame 以制作训练集
- java - 如何从具有任意深度的深度嵌套哈希表中检索值?
- jquery - 使用 jquery 从克隆的输入字段上传多个文件