我正在尝试 Office 365 Insider 版 Microsoft Excel 的新功能,动态数组,并尝试以一种简单的方式做一些我一直想做的事情。
本质上,我想知道是否可以使用动态数组的每个值作为输入来创建动态数组矩阵,或者甚至只是用一个数组简单地创建下面的矩阵(表 3)。
下面的表1和表2是结构化表。
表 1 – 客户:
| Client | Client Name |
|--------|-------------|
| C001 | Client 1 |
| C002 | Client 2 |
| C003 | Client 3 |
表 2 – 文件:
| Document | Doc Description | Related Client |
|----------|-----------------|----------------|
| D001 | Doc 1 | C002 |
| D002 | Doc 2 | C002 |
| D003 | Doc 3 | C001 |
| D004 | Doc 4 | C002 |
| D005 | Doc 5 | C001 |
表 3-预期动态表:
| Dynamic Array of "Clients" | Client 1 (*1) | Client 2 | Client 3 |
|----------------------------|---------------|----------|----------|
| Dyn. Arrays of "Documents" | D003 (*2) | D001 | N/A |
| | D005 | D002 | |
| | | D004 | |
在上表中(*1)将使用类似以下内容创建动态数组:
=TRANSPOSE(Table1[Client])
并且 (*2) 将是一个使用类似以下内容创建的动态数组:
=FILTER(Table2[Document], Table2[Related Client]={Client}, "N/A"}
问题是我一直无法找到如何创建所有“文档”的动态数组,它们的数量会随着“客户端”动态数组而自动增长”。
即我可以使用简单的相对单元格引用来{客户},但当“客户端”动态数组发生变化(增加)时,不会动态调整文档动态数组的范围。我以为使用动态数组引用就足够了,但它效果不好({客户}#)。
我也尝试在结构化表中执行此操作,但遗憾的是动态数组在这些表中不起作用。
这可能吗?
编辑:我正在寻找一个使用动态数组的答案。
答案1
您的问题可以通过以下方法解决Helper Column along side of Table 2
:
怎么运行的:
在单元格中输入此公式
O40
并填写。=INDEX(M$34:M$36,MATCH(N40,L$34:L$36,0))
在单元格中
M48
输入此数组(CSE)公式,最后输入Ctrl+Shift+Enter并填充表格。{=IFERROR(INDEX($M$40:$M$44, SMALL(IF((M$47=$O$40:$O$44), MATCH(ROW($O$40:$O$44), ROW($O$40:$O$44)), ""),ROWS($A$1:A1))),"")}
注意:
- 您可以
Blank
用Not Aval
. 替换数组公式最后部分的文本,,
ROWS($A$1:A1))),"")
它应该写成,ROWS($A$1:A1))),"Not Aval.")
。
根据需要调整公式中的单元格引用。