如何通过单击不同的单元格动态更改MS excel 2016 vlookup值?

时间:2017-08-18 03:19:38

标签: excel vba excel-vba

根据MS excel 2016电子表格中的表格,我正在使用sum vlookup数组函数,以便为给定的查找值构建两列的总和:

=SUM(VLOOKUP(lookup_value, lookup_range, {2,3,4}, FALSE))

表格通常如下所示:

 Lookup_value       January February March  April
    8/15/2020       $1.66   $1.40    $1.05   $103.00 
    2/15/2021       $1.50   $1.97    $0.47  $99.51 
    8/15/2021       $1.50    $1.96    $0.46     $99.05 
    2/15/2022       $1.50    $1.95    $0.45     $98.60 
    8/15/2022       $1.50    $1.94    $0.44     $98.15 
    2/15/2023       $1.50    $1.93    $0.43     $97.72 
    8/15/2023       $1.50    $1.93    $0.43     $97.30 

例如,

的结果
=SUM(VLOOKUP( 8/15/2020, $A$1:$G$5, {January, March}, FALSE))

是$ 1.66 + $ 1.05 = $ 2.71

有没有办法通过点击不同的单元格来动态更改查找值?我需要一个工具来为不同的日期查找值生成这个vlookup总和,当我点击它们时定义。

如何根据游标操作动态更改vlookup值?

2 个答案:

答案 0 :(得分:1)

每次用户双击时,是否可以使用工作簿事件监控点击次数来重建vlookup公式?

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

在“ThisWorkbook”对象的代码中使用这些。然后使用ActiveCell.Address或类似方法重建vlookup。每次用户双击时添加到vlookup,并包含用于重置vlookup的“清除”按钮。

答案 1 :(得分:0)

取代公式和VBA,取消数据显示会更简单(如果你有的话,使用PowerQuery,或者如果你没有,则使用VBA),将数据转换为数据透视表,然后在Month字段上添加Slicer 。没有必要的VBA,以及完全相同的结果:有人点击他们想要的月份,数据透视表显示所需的聚合。