如何用TEXTJOIN和ISBLANK实现空白单元格对应行A、B值按行拼接?
问题
当'Proposed Dataset'!F2:F10区域内单元格为空时,需要返回对应行的A列('Proposed Dataset'!A2:A10)和B列('Proposed Dataset'!B2:B10)值,按行组合(先拼接A2与B2,再处理A3与B3……)后用逗号分隔。但当前使用的公式会先输出所有符合条件的A列值,再输出所有B列值,无法实现按行组合的需求。
当前使用的公式:
=TEXTJOIN(",",FALSE,IF(ISBLANK('Proposed Dataset'!F2:F10),'Proposed Dataset'!A2:A10,""),IF(ISBLANK('Proposed Dataset'!F2:F10),'Proposed Dataset'!B2:B10,""))
解决方案
适用于Excel 365/2021(支持动态数组)
场景1:每行A、B值用自定义分隔符拼接后再整体逗号分隔
比如要得到A2|B2,A3|B3这类格式,先在IF里完成每行A、B的拼接,再用TEXTJOIN合并:
=TEXTJOIN(",",TRUE,IF(ISBLANK('Proposed Dataset'!F2:F10),'Proposed Dataset'!A2:A10&"|"&'Proposed Dataset'!B2:B10,""))
如果不需要A、B之间的分隔符,直接把"|"换成空字符串""即可。
场景2:所有A、B值直接用逗号连续分隔(如A2,B2,A3,B3)
用CHOOSE函数把每行的A、B值拆成独立元素,再按行顺序连接:
=TEXTJOIN(",",TRUE,IF(ISBLANK('Proposed Dataset'!F2:F10),CHOOSE({1,2},'Proposed Dataset'!A2:A10,'Proposed Dataset'!B2:B10),""))
适用于旧版Excel(无动态数组,需按数组公式输入)
输入公式后按Ctrl+Shift+Enter完成数组公式的确认:
=TEXTJOIN(",",TRUE,IF(ISBLANK('Proposed Dataset'!F2:F10),'Proposed Dataset'!A2:A10&","&'Proposed Dataset'!B2:B10,""))
注:旧版Excel需确保已支持TEXTJOIN函数(2019及以后版本或安装对应兼容包)
内容的提问来源于stack exchange,提问作者Oatius
相关产品推荐
相关产品推荐

