Excel VBA索引匹配动态范围

时间:2017-04-04 22:26:24

标签: excel vba excel-vba

更新:斜体字中的所有措辞都已更改,因为我觉得我的问题没有得到解答。

不幸的是,所有其他类似命名的问题都比我认为的要详细得多。因此,我的所有谷歌搜索都没有结果,我回来问你优秀的WIZARDS。

基本上我想索引匹配动态范围。输入数据是根据查询的数据周而变化的,但好的是工作表始终与是列相同,但列长度是可变的。通常我会在这里使用LastRow函数,但这不可能,因为它使用公式的参考单元格。对于你们中的一些人来说,这可能会非常简单。见下文:

ActiveCell.FormulaR1C1 = _
    "=INDEX('Consolidation Sheet'!R8C2:R6477C2,MATCH('Workbook 1'!RC[-1],'Consolidation Sheet'!R8C6:R6477C6,0))"

LastRow = Cells(Rows.Count, "E").End(xlUp).Row
Range("F4").AutoFill Destination:=Range("F4:F" & LastRow), Type:=xlFillDefault 'fill F column

供参考"合并表"列是列B 或" 2"在参考代码中。我要求索引匹配要做的是找到员工根据他们的员工数量转移,但是每天输入的信息是可变的,因为它是超时数据,所以我需要列长度是动态的。任何帮助都会有所帮助。

1 个答案:

答案 0 :(得分:0)

不确定您需要使用索引/匹配计算什么,但以下显示了进行动态索引/匹配查找的阶段。这假定数据按员工排序

ColumnA - EmployeeName
ColumnB - EmployeeHours
ColumnC - StartRowOfEmployee =MATCH(A3,A:A,0)
ColumnD - EndRowOfEmployee =C3+COUNTIF(A:A,A3)-1
ColumnE - SumOfEmployeeHours =SUM(INDEX(B:B,C3,0):INDEX(B:B,D3,0))

这将是快速且非易变的。本质上,动态元素是通过将INDEX链接到SUM(Rng1:Rng2)而构建的,其中Rng1和Rng2是数据的动态开始和结束行。

enter image description here