2016-07-26 64 views
1

我正试图找到一种方法来做到这一点。在这一刻。我将多个数据集导入到电子表格中。我有两个透视表,彼此垂直设置。顶部水平是所有测试名称,垂直是日期列表。基于动态范围扩展en Excel的Forumula单元格

日期根据从查询中拉入的数据点的数量而变化,因此范围会不断变化。

通过使用以下代码将数据分拣到这两个中。

=IF(SUMPRODUCT((Sheet3!$B$4:$B$174=E$3)*(Sheet3!$C$4:$C$174=$B10)*(Sheet3!$E$4:$E$174))>0,SUMPRODUCT((Sheet3!$B$4:$B$174=E$3)*(Sheet3!$C$4:$C$174=$B10)*(Sheet3!$E$4:$E$174)),"") 

最终结果是数据按照这种格式排序到适当的数据/测试对中。

我遇到了一个问题,因为我需要能够扩展数据排序公式的受影响的区域,而不是无限期地在行下扩展它。

我试图使用这个VBA宏,但意图是不拉下EXACT公式,它是扩展公式,因为Excel会扩展它,更改允许更改的项目,例如行和列来更改数据排序条件。

Sub aTest() 
With Sheets("Sheet2") 
    .Range("c4:c" & .Cells(.Rows.Count, "B").End(xlUp).Row).Formula = "=Len(B4)" 
End With 
End Sub 

这不起作用,因为它将公式完全复制下来。

预先感谢您。

回答

0

使用.FormulaR1C1方法,我认为应该做的伎俩,它应该考虑偏移单元格引用。

Sub aTest() 
    With Sheets("Sheet2") 
     .Range("c4:c" & .Cells(.Rows.Count, "B").End(xlUp).Row).FormulaR1C1 = "=Len(R[0]C[-1])" 
    End With 
End Sub 

的方括号使参考相对,所以"=Len(R[0]C[-1])"是指一个塔之前和零行向下

相关问题