Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如果存在';这是一个价值观_Excel - Fatal编程技术网

Excel 如果存在';这是一个价值观

Excel 如果存在';这是一个价值观,excel,Excel,我有一个带有ID列和6个其他值列的表: A B C D E F G ID Col1 Col2 Col3 Col4 Col5 Col6 001 123 456 789 002 901 234 567 890 123 456 我正在寻找一个公式,该公式将ID与任何列的值连接起来,并用破折号分隔(在本例中) 即 只是,我不想把破折号放在没有任何值的单元格旁边 所需的输出应该如

我有一个带有ID列和6个其他值列的表:

A    B      C      D      E      F      G
ID   Col1   Col2   Col3   Col4   Col5   Col6
001  123    456    789
002  901    234    567    890    123    456
我正在寻找一个公式,该公式将ID与任何列的值连接起来,并用破折号分隔(在本例中)

只是,我不想把破折号放在没有任何值的单元格旁边

所需的输出应该如下所示

001-123-456-789
002-901-234-567-890-123-456
根据我使用的公式,它看起来是这样的:

001-123-456-789---
002-901-234-567-890-123-456
例如:

=IF(A2<>"","-"&A2,"")&IF(B2<>"","-"&B2,"")&IF(C2<>"","-"&C2,"")&IF(D2<>"","-"&D2,"")&IF(F2<>"","-"&F2,"")&IF(G2<>"","-"&G2,"")
=IF(A2-“-”&A2-”)&IF(B2-“&B2-”)&IF(C2-“&C2-”)&IF(D2-“&D2-”)&IF(F2-“&F2-”&IF(G2-“&G2)”)
例如:

=IF(A2<>"","-"&A2,"")&IF(B2<>"","-"&B2,"")&IF(C2<>"","-"&C2,"")&IF(D2<>"","-"&D2,"")&IF(F2<>"","-"&F2,"")&IF(G2<>"","-"&G2,"")
=IF(A2-“-”&A2-”)&IF(B2-“&B2-”)&IF(C2-“&C2-”)&IF(D2-“&D2-”)&IF(F2-“&F2-”&IF(G2-“&G2)”)

如果您使用的是Excel 2016,您可以使用新函数:
=TEXTJOIN(“-”,True,A2:G2)
在旧版本中,您可以创建UDF,或者在连接中使用一组
If()
公式。我使用的是Office Excel 2010。它没有textjoin函数:/如果你在Excel 2016中,你可以使用新函数:
=textjoin(“-”,True,A2:G2)
在旧版本中,你可以创建一个自定义项,或者在连接中使用一组
If()
公式。我在Office Excel 2010中。它没有textjoin函数:/Long,但它做到了这一点。谢谢^。我没有想过使用&否则你可以让VBA函数有一个短函数来应用=>这意味着在ConcatRange中的每个n都有一个宏excel
function concatenaterage(ConcatRange作为范围)作为字符串:nn=IIf(n=”,nn&“”,nn&n&“/”:Next concatenaterage=Left(nn,Len(nn)-1)End函数
Long,但它确实起了作用。谢谢^。我没有考虑过使用&否则你可以让VBA函数有一个短函数来应用=>这意味着对于ConcatRange中的每一个n都有一个宏excel
函数concatenaterage(ConcatRange作为范围)作为字符串:nn=IIf(n=”,nn&“”,nn&n&“/”:Next concatenaterage=Left(nn,Len(nn)-1)End函数