Excel 自动连接过程
在这里,我被一个excel问题困住了,我想从F列连接到I列,其中逻辑是基准列A3(例如)如果为空,则需要将列F连接到列I,直到列A4处有一个值。此逻辑需要自动连接所述列,直到基准列下有一个值。目前,我需要不断更改连接范围,以便将其与逻辑完全连接。如果有人能帮助我,我将不胜感激 下图显示了我如何手动操作,这非常耗时Excel 自动连接过程,excel,vba,Excel,Vba,在这里,我被一个excel问题困住了,我想从F列连接到I列,其中逻辑是基准列A3(例如)如果为空,则需要将列F连接到列I,直到列A4处有一个值。此逻辑需要自动连接所述列,直到基准列下有一个值。目前,我需要不断更改连接范围,以便将其与逻辑完全连接。如果有人能帮助我,我将不胜感激 下图显示了我如何手动操作,这非常耗时 偏移功能在这里很方便。一个解决办法是像这样做 这在我的工作表中起作用 单元格Q6只定义匹配函数检查下一个“HEADER1”值的向下行数。如果找到“HEADER1”,则MATCH函数返
偏移功能在这里很方便。一个解决办法是像这样做 这在我的工作表中起作用 单元格Q6只定义匹配函数检查下一个“HEADER1”值的向下行数。如果找到“HEADER1”,则MATCH函数返回向下-1的行数。如果在该范围内未找到“HEADER1”-值,则该值为使用的行数 如果第一列也有“HEADER2”等等,那么可以将MID函数添加到MATCH中的两个引用中,以限制搜索字符串的哪一部分 我试图适当调整参考以适合您的工作表,但我可能遗漏了一些内容:
=IF(ISBLANK($B2),"",CONCAT(OFFSET($B2,0,0,IFNA(MATCH(MID($B2,1,6),MID(OFFSET($B2,1,0,$B$1),1,6),0),$B$1),4)))
您可以使用
MATCH
函数(带有通配符)查找下一个非空行;并在索引
函数中使用它来检测要连接的范围
假设您的数据以A3开头,最低可能的行是第1000行(如果可能有很大不同,请更改下面公式中的1000
:
J2: =IF(A2="","",CONCAT(INDEX(F2:$I$1000,1,0):INDEX(F2:$I$1000,IFERROR(MATCH("*",A3:$A$1000,0),1000-ROW()),0)))
注意:也可以使用
间接
和/或偏移量
开发解决方案。不幸的是,这些函数是不稳定的,这意味着它们会在工作表上任何更改时重新计算。如果有许多公式使用这些函数,工作表性能将受到影响。索引
和 MATCH
是非易失性的(Excel的旧版本除外-2003年以前的版本左右)请查看间接函数非常有用的解释,并提供有趣的性能提示:-)