excel - 使用索引、匹配和连接创建列表

标签 excel excel-formula concatenation

我在 Excel 中有一个公式,它几乎可以工作。然而,公式的一部分无论我如何尝试和做什么,似乎都无法使其发挥作用。

工作公式

=IFERROR(INDEX(DDRT!$K$7:$K$158,SMALL(IF(DDRT!$K$7:$K$158<>"",MATCH(ROW(DDRT!$K$7:$K$158),ROW(DDRT!$K$7:$K$158)),""),ROW(A1))),"")

这个公式将创建一个列表并忽略数组 K7 到 K158 中的任何空白,这正是我想要做的,但是,Value K 是一个变量,并且是基于另一张表格中的列表。

我有一个连接,它根据列表返回正确的值,效果很好。

连接公式

=CONCATENATE("DDRT!",ADDRESS(List!$E$6,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0)),":",ADDRESS(List!$E$7,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0)))

返回值 - DDRT!$K$7:$K$158

当我尝试将两个公式组合在一起时,数组不起作用并返回错误:

不起作用的公式

=IFERROR(INDEX(CONCATENATE("DDRT!",ADDRESS(List!$E$6,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0)),":",ADDRESS(List!$E$7,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0))),SMALL(IF(CONCATENATE("DDRT!",ADDRESS(List!$E$6,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0)),":",ADDRESS(List!$E$7,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0)))<>"",MATCH(ROW(CONCATENATE("DDRT!",ADDRESS(List!$E$6,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0)),":",ADDRESS(List!$E$7,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0)))),ROW(CONCATENATE("DDRT!",ADDRESS(List!$E$6,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0)),":",ADDRESS(List!$E$7,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0))))),""),ROW(A1))),"")

Image of Returned Error Message

最佳答案

=IFERROR(INDEX(INDIRECT(CONCATENATE(ADDRESS($E$6,MATCH($D$3,$A$6:$L$6,0)),":",ADDRESS($E$7,MATCH($D$3,$A$6:$L$6,0)))),SMALL(IF(INDIRECT(CONCATENATE(ADDRESS($E$6,MATCH($D$3,$A$6:$L$6,0)),":",ADDRESS($E$7,MATCH($D$3,$A$6:$L$6,0))))<>"",MATCH(ROW(INDIRECT(CONCATENATE(ADDRESS($E$6,MATCH($D$3,$A$6:$L$6,0)),":",ADDRESS($E$7,MATCH($D$3,$A$6:$L$6,0))))),ROW(INDIRECT(CONCATENATE(ADDRESS($E$6,MATCH($D$3,$A$6:$L$6,0)),":",ADDRESS($E$7,MATCH($D$3,$A$6:$L$6,0)))))),""),ROW(A1))),"")

这是你的公式,里面有间接的。我必须删除工作表名称,以便可以在 Excel 中输入它。它没有您的错误消息。我所做的只是将连接公式包装在间接公式中。

=INDIRECT(CONCATENATE("DDRT!",ADDRESS(List!$E$6,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0)),":",ADDRESS(List!$E$7,MATCH(Transmittal!$D$3,DDRT!$A$6:$L$6,0))))

关于excel - 使用索引、匹配和连接创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37513263/

相关文章:

excel - 在 vba 中将文本文件中的数据提取到 Excel 中

vba - 将单元格内的任何单词与单元格范围内的任何单词相匹配

excel - 多列vlookup

excel - Excel中概率分布的熵

C 连接运算符与 + 运算符

excel - 在MATLAB中使用xlsread读取数字和字符串数据

excel - 如何将行转换为列,并重复相邻的单元格?

bash - awk 根据列值连接

python - Pandas Concat 增加行数

vba - Excel 宏,在运行时插入国际有效的公式