VLOOKUP 在单元格为空时删除空格
VLOOKUP remove spaces when cell is empty
这是一个简单的客户sheet:
A B C D
ID First Middle Last
1 John Doe
2 Jane Maia Doe
然后在 F1 中我输入了这个 vlookup 代码:
=VLOOKUP($G;$A:$D;2;FALSE)&" "&VLOOKUP($G;$A:$D;3;FALSE)&" "&VLOOKUP($G;$A:$D;4;FALSE)
当我查找 ID 2 时,它在 vlookups
之间完美 spaced
但是当我查找 ID 1 时,您会看到名字和姓氏之间有 2 spaces,因为这里没有中间名。
如何管理我总是在 vlookup 之间看到 1 space?
实现所需结果的一种方法是简单地将多个 space 替换为单个 space。
=REGEXREPLACE(JOIN(" ",ARRAYFORMULA(VLOOKUP(G1,A:D,{2,3,4},FALSE))),"\s{2,}"," ")
此公式在您的 table (A:D) 中查找 G1。 VLOOKUP can be used in an ARRAYFORMULA to efficiently retrieve all of the columns you want in one shot. Your JOIN joins all of the retrieved columns, inserting a space between each value. Finally, your REGEXREPLACE 函数查找多个连续的 space 并将它们替换为单个 space.
或者,您可以过滤结果数组(即 VLOOKUP returns 的结果)。以下公式查找名字、中间名和姓氏的数组,然后在使用 space.
连接剩余元素之前过滤掉所有空单元格
=JOIN(" ",FILTER(VLOOKUP(I1,A:D,{2,3,4},FALSE),INDIRECT("B"&MATCH(I1,A:A,0)&":D"&MATCH(I1,A:A,0))<>""))
您只需要 TRIM
fx 和:
=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(
VLOOKUP(G1:G2, A1:D3, {2,3,4}, 0))),,999^99))))
这是一个简单的客户sheet:
A B C D
ID First Middle Last
1 John Doe
2 Jane Maia Doe
然后在 F1 中我输入了这个 vlookup 代码:
=VLOOKUP($G;$A:$D;2;FALSE)&" "&VLOOKUP($G;$A:$D;3;FALSE)&" "&VLOOKUP($G;$A:$D;4;FALSE)
当我查找 ID 2 时,它在 vlookups
之间完美 spaced但是当我查找 ID 1 时,您会看到名字和姓氏之间有 2 spaces,因为这里没有中间名。
如何管理我总是在 vlookup 之间看到 1 space?
实现所需结果的一种方法是简单地将多个 space 替换为单个 space。
=REGEXREPLACE(JOIN(" ",ARRAYFORMULA(VLOOKUP(G1,A:D,{2,3,4},FALSE))),"\s{2,}"," ")
此公式在您的 table (A:D) 中查找 G1。 VLOOKUP can be used in an ARRAYFORMULA to efficiently retrieve all of the columns you want in one shot. Your JOIN joins all of the retrieved columns, inserting a space between each value. Finally, your REGEXREPLACE 函数查找多个连续的 space 并将它们替换为单个 space.
或者,您可以过滤结果数组(即 VLOOKUP returns 的结果)。以下公式查找名字、中间名和姓氏的数组,然后在使用 space.
连接剩余元素之前过滤掉所有空单元格=JOIN(" ",FILTER(VLOOKUP(I1,A:D,{2,3,4},FALSE),INDIRECT("B"&MATCH(I1,A:A,0)&":D"&MATCH(I1,A:A,0))<>""))
您只需要 TRIM
fx 和:
=ARRAYFORMULA(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(
VLOOKUP(G1:G2, A1:D3, {2,3,4}, 0))),,999^99))))