Excel INDEX 匹配和 TEXTJOIN 函数

Excel INDEX 匹配和 TEXTJOIN 函数

我正在尝试结合 INDEX-MATCH 和 TEXT 连接函数

我有一家公司 - ABC Ltd,我的工作编号为 15-SER-7170。我维护一个订单详细信息标签(称为服务订单日志)。它看起来像这样:在此处输入图片描述 (A)发票日期......(下)所以#......(C)顾客......(四)物品.....(英)发票开具方#
2015年1月6日...........15-SER-7170.......ABC LTD.送料机.................???...............

现在,对于订单,我已向他们开具了多张发票,并在另一个选项卡(称为 INV LOG)上维护发票详细信息,如下所示:在此处输入图片描述 (A 栏)发票#..........(下)发行日期..........(C)所以# ..........(四)顾客

8122.................2015年1月5日...............15-SER-7170..........ABC有限公司

8123.................2015年1月15日...............15-SER-7170..........ABC有限公司

8124.................2015年2月17日...............15-SER-7170..........ABC有限公司

8125.................2015年2月25日...............15-SER-7170..........ABC有限公司

8126.................2015年2月4日...............14-SER-7158..........ROPE有限公司

8132.................2015年3月25日...............15-PRO7-497.........DANUE有限公司

8133.................2015年3月30日...............15-PRO7-495.........OPTRA有限公司

8135.................2015年3月26日...............15-SER-7170..........ABC有限公司

8136.................2015年3月30日...............15-SER-7170..........ABC有限公司

我正在尝试输入发票# 从 INV LOG 选项卡到发票开具方#在服务订单选项卡上。我使用的公式是 =IFERROR(INDEX('INV LOG'!$C$3:$C$11,MATCH('SERVICE ORDER LOG'!B3,'INV LOG'!$E$3:$E$11,0)),"未开具发票")。但是它只给我一个值 8122。

因此我尝试将 TEXTJOIN 函数与其结合起来并尝试使用公式: =TEXTJOIN(",",TRUE,IF('INV LOG'!E3:E11='SERVICE ORDER LOG'!B3,'INV LOG'!C3:C11),IFERROR(INDEX('INV LOG'!$C$3:$C$11,MATCH('SERVICE ORDER LOG'!B3,'INV LOG'!$E$3:$E$11,0)),"Not invoiced"))

但是,这样返回的所有发票号码均为 8122、8123、8124、8125、8126、8132、8133、8135、8136、8122,而不仅仅是 ABC 有限公司的发票号码。有人可以帮我解决这个问题吗?

答案1

如果有动态数组公式FILTER:

=TEXTJOIN(",",TRUE,FILTER('INV LOG'!C3:C11,'INV LOG'!E3:E11='SERVICE ORDER LOG'!B3,"Not invoiced"))

如果不使用这个数组公式:

=TEXTJOIN(",",TRUE,IF('INV LOG'!E3:E11='SERVICE ORDER LOG'!B3,'INV LOG'!C3:C11,""))

退出编辑模式时,需要使用 Ctrl-Shift-Enter 而不是 Enter 来确认。

第二种方法的缺点是,如果没有匹配项,它将返回一个空白单元格。如果必须这样做,Not Invoiced则:

=IF(TEXTJOIN(",",TRUE,IF('INV LOG'!E3:E11='SERVICE ORDER LOG'!B3,'INV LOG'!C3:C11,""))<>"",TEXTJOIN(",",TRUE,IF('INV LOG'!E3:E11='SERVICE ORDER LOG'!B3,'INV LOG'!C3:C11,"")),"Not invoiced")

相关内容