2017-10-19 58 views
0
=ARRAYFORMULA(if(isblank(B2:B),"",B2:B)) 

重复该列。但是,arrayformula似乎只能在顶层嵌套层次上工作

=ARRAYFORMULA(if(isblank(B2:B),"",CONCATENATE("B=",B2:B))) 

产生具有起始B=值的列,但是随后从结果中的列的每个小区B列中的所有行值的并置。

看来B2:B在左边的效果,即使是两个嵌套层次下来,也会产生正确的结果(只有B列在每行中不是空白时才会有值),但是B2的效果是: B在右边,具有不同的效果,并且根据我不明白的条件而变化,有时是单个值,有时扩展到整个阵列。这使得ARRAYFORMULA对我的应用程序有非常有限的用处。我希望得到的列将只有相应的列B列的单个值。

我错过了关于如何使用ARRAYFORMULA

有没有不同的方法来实现我的目标,即在结果列的每个单元格的前面添加B=? (实际上,我的目标是对单元格值和其他文本进行更复杂的组合,但是我将其缩减到了这个我不明白的更简单的情况,也许如果我明白这一点,我可以做更复杂的事情东西)

回答

2

CONCATENATE将所有数组合并成一个值。我相信这是你要找的东西:

=ARRAYFORMULA(if(B2:B="","",("B="&B2:B))) 

这里有一些思考的食物。你期望下面的公式做什么?

=ARRAYFORMULA(CONCATENATE(if(isblank(B2:B),"",("B="&B2:B&"")))) 

也尽量CONCATJOINTEXTJOIN。每个人可能看起来都是一样的。但这些微妙的差异使世界上的所有差异。

+0

是的,使用CONCAT而不是CONCATENATE解决了我的问题,也让我做了更复杂的工作。谢谢。 – Victoria