【问题标题】:AdvancedFilter using a SUMIF as a criteriaAdvancedFilter 使用 SUMIF 作为标准
【发布时间】:2017-08-27 07:13:29
【问题描述】:

我正在尝试使用 VBA 中的 AdvancedFilter 来创建列表的导出。我的问题不在于有效的代码,而在于我尝试使用的标准。我想过滤我正在使用的 RAW 数据集的 SUMIF 值。因此,如果 RAW 数据 =sumif(m:m,a:a,a2)

参考代码

FilterData()

Sheets("RAW").Range("A1:n2000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Sheets("Criteria").Range("a1:a2"), CopyToRange:=Sheets("EXPORT").Range("A1:n1"), Unique:=True
Columns.AutoFit
Cells.WrapText = False
  End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您可以在另一个带有空白单元格的单元格中设置公式,可能在工作表的顶部,仅引用第一个数据列表行而不锁定单元格:

    例如,你是高级过滤

    range("A10:M2010")
    

    range("A2") 
    

    将您的标准设置为:

    =sumif($M$10:$M$2010,$A$10:$A10$2010,A10)<2 
    

    并将 range("A1") 留空,

    然后使用高级过滤器选择

    list range as $A$10:$M$2010
    

    然后是

    criteria range as 'SheetName'!$A$1:$A$2 (Blank cell, and formula)
    

    Excel 将执行与在要过滤的范围右侧创建另一列相同的操作,然后将其过滤。

    用过滤器试试这个,然后复制到另一个地方。

    这里是示例(使用意大利版 Excel):

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 2014-02-27
      • 2012-05-16
      • 2021-02-12
      • 2013-09-16
      相关资源
      最近更新 更多