在 COUNTIFS 中使用命名范围

Posted

技术标签:

【中文标题】在 COUNTIFS 中使用命名范围【英文标题】:Use Named range in a COUNTIFS 【发布时间】:2018-03-01 10:09:04 【问题描述】:

我遇到了需要与命名范围(动态范围)一起使用的计数公式。

所以我用第一行和最后使用的行设置了我的范围,它显然有效。 但是当我想在我的计数中使用这些命名范围时,它就不起作用了。 只是为了帮助您理解,没有 vba 的 countif 看起来像这样: =NB.SI.ENS($F$28:$F$400;E16;$H$28:$H$400;"Topé")

并使用 VBA:

   Dim NoPremièreLigne As Long
  Dim NoDernièreLigne As Long
  Dim maplage2 As string
  Dim maplage3 As string


NoPremièreLigne = 28
NoDernièreLigne = Range("F" & Rows.Count).End(xlUp).Row

Set maplage2 = "H" & NoPremièreLigne & ":" & "H" & NoDernièreLigne
Set maplage3 = "F" & NoPremièreLigne & ":" & "F" & NoDernièreLigne


    Range("F16").Select
    ActiveCell.FormulaR1C1 = _
    "=COUNTIFS(" & maplage3 & ",E16," & maplage2 & ",""Topé"")"

这不起作用,我没有错误消息,但在单元格中我有一个#name

如果您对这个问题有任何想法,非常感谢......

jm

【问题讨论】:

删除所有空格。或者试试"=COUNTIFS(" & maplage3.Address & ",E16," & maplage2.Address; " &,""*Topé*"")" @FoxfireAndBurnsAndBurns - 看起来像是放错了引号和带有额外分号的 & 符号。 您好,我尝试了您的代码,但没有成功。所以我改变了一点我的代码来获取一个字符串,现在,我在单元格中有正确的值但是,我仍然有一个#NAME错误,因为我在公式中有':=NB.SI.ENS('F28': 'F338';'E16';'H28':'H338';"Topé") 并且属性地址返回“无效的限定符”错误 事实上,我也尝试通过使用范围(plage2/3 作为范围)等并使用地址属性来做到这一点,我得到了 1004 代码错误.... 好的,我解决了我的问题: Range("F16") = _ "=COUNTIFS(" & maplage3.Address & ",E16," & maplage2.Address & ",""Topé "")" 而不是 Range("F16").Select ActiveCell.FormulaR1C1 = _ "=COUNTIFS(" & maplage3.Address & ",E16," & maplage2.Address & ",""Topé"")"跨度> 【参考方案1】:

应用一些基本的字符串连接并使用范围地址。

Range("F16").Formula = _
  "=COUNTIFS(" & maplage3.address & ", E16, " & maplage2.address & ", ""*Topé*"")"

【讨论】:

您好,感谢您的回答,但属性 .adress 对我不起作用(上面消息中的解释) 我无法解释您如何获得额外的单引号来包裹您的范围地址。我也无法解释为什么您的范围地址不是绝对引用。

以上是关于在 COUNTIFS 中使用命名范围的主要内容,如果未能解决你的问题,请参考以下文章

使用Countifs仅根据不同的数据范围计算唯一值

选择具有多列的范围时,Countifs 不起作用

COUNTIFS公式,匹配多个字符串

在 countifs 中指定可变长度公式

如何使用Countifs函数动态统计

在 COUNTIFS 中使用 OR & AND