繁体   English   中英

如何使用 arrayformula 以便获得上次使用的单元格值?

[英]How can I use arrayformula so I got the cell value that used last time?

我在谷歌表上有一个目录,其中B 列上的单词列表和C 列上的图像名称。 在 C 列上,没有为每个单元格提供图像名称。 现在我需要在单元格 D1上使用ARRAYFORMULA ,如果A 列的行不为空,它将在D列上给出 output(单词名称和图像名称)。 如果您查看随附的屏幕截图,对于某些 Word, C 列上没有给出图像名称。 在这种情况下,我需要上次使用的图像名称。 For example:第 17 行,第4 个单词没有给出图像名称。 因此,在这种情况下,图像名称将是以前用于WORD 3单元格 C12中的图像 2 我尝试了许多不同的方式,但从来没有用 ARRAYFORMULA 做到这一点。 我现在使用的唯一解决方案是对每一行都使用公式,这不是一个好的解决方案。 我需要用 ARRAYFORMULA 来做。 我不想用谷歌脚本来做。

电子表格链接(请查看Tab 1

请查看截图

我在 D1 中添加了一个带有以下公式的工作表(“Erik Help”):

=ArrayFormula({"Header";IF(A2:A="",,B2:B&": "&VLOOKUP(ROW(A2:A),FILTER({ROW(A2:A),C2:C},C2:C<>""),2,TRUE))})

这个数组公式创建了一个 header,然后用结果填充整个列。

您可以将“标题”更改为您喜欢的任何内容。

IF(A2:A="",,如果 Col A 的那一行没有任何内容,则离开 D2:D null。

否则, B2:B中的任何内容都与空格-冒号-空格连接,然后是FILTER ed 虚拟数组中所有行的VLOOKUP ,该数组仅包含行和 Col-C 数据,其中 Col C 不为空。 因为选择TRUE作为最终参数,所以所有行都将“向后看”到 Col C确实包含数据的最后一行,并将该数据作为要连接的最后一块返回。

=if(isnumber(SEARCH("WORD",B2,1)),join(" : ",B2, indirect(ARRAYFORMULA(address(IFNA(match(2,1/($C$2:$C2<>"")))+1,COLUMN(C2))))),"")

在 D1 单元格中通过此公式并将其拖动...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM