当单元格为空时,VLOOKUP删除空格

时间:2019-05-06 16:42:44

标签: google-sheets array-formulas google-sheets-formula gs-vlookup

这是一个简单的客户表:

A   B       C       D
ID  First   Middle  Last
1   John            Doe
2   Jane    Maia    Doe

在F1中,我输入了以下vlookup代码:

=VLOOKUP($G$1;$A$1:$D$3;2;FALSE)&" "&VLOOKUP($G$1;$A$1:$D$3;3;FALSE)&" "&VLOOKUP($G$1;$A$1:$D$3;4;FALSE)

当我查找ID 2时,在vlookup之间完美地隔开了

但是当我查找ID 1时,您会在名字和姓氏之间看到2个空格,因为这里没有中间名。

如何管理我在vlookup之间总是看到1个空格?

2 个答案:

答案 0 :(得分:2)

获得所需结果的一种方法是简单地用一个空格替换多个空格。

=REGEXREPLACE(JOIN(" ",ARRAYFORMULA(VLOOKUP(G1,A:D,{2,3,4},FALSE))),"\s{2,}"," ")

此公式在表(A:D)中查找G1。 VLOOKUP可在ARRAYFORMULA中使用,以有效地一次检索您想要的所有列。您的JOIN连接所有检索到的列,并在每个值之间插入一个空格。最后,您的REGEXREPLACE函数将查找多个连续的空格并将其替换为单个空格。

或者,您可以过滤结果数组(即VLOOKUP返回的结果)。下面的公式查找姓,名和姓的数组,然后在将其余元素与空格连接之前过滤掉所有空单元格。

=JOIN(" ",FILTER(VLOOKUP(I1,A:D,{2,3,4},FALSE),INDIRECT("B"&MATCH(I1,A:A,0)&":D"&MATCH(I1,A:A,0))<>""))

答案 1 :(得分:1)

您需要的是 TRIM fx和:

=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(
 VLOOKUP(G1:G2, A1:D3, {2,3,4}, 0))),,999^99))))

0