我有一个excel文件,其结尾范围未知(每次更改),我想知道特定单词在该数据表中返回的行数。
这只是一栏,我尝试了很多不同的方法,但我仍然不知道它的解决方案。
这是VBA代码:
Sub count_cookies()
lastrow = Worksheets("table").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("table").Cells(6, 2) = WorksheetFunction.CountIf(Range("data!A2:A" & lastrow), "* cookies *")
End Sub
所以我希望从表格中计算出金额"数据"表"表",但我做错了什么?
编辑:我有一个问题,我已经过滤了数据,但是countif仍然统计所有数据,我怎样才能只计算过滤后的数据?这有不同的公式吗?答案 0 :(得分:1)
看起来您应该从数据表中获取最后一行,因为那是您想要计数的工作表。此外,您应在定义范围时指定工作表。我更喜欢使用" Cells"语法。
> microbenchmark(jaap1 = do.call(rbind, lapply(split(a, row(a)), sort, decreasing = TRUE)),
+ apom = t(apply(a, 1, sort, decreasing = TRUE)),
+ jaap2 = for(i in 1:nrow(a)) a[i,] <- a[i,][order(a[i,], decreasing = TRUE)],
+ jaap3 = for(i in 1:nrow(a)) a[i,] <- sort(a[i,], decreasing = TRUE),
+ alpha = t(apply(a, 1, function(x) order(x, decreasing = T))),
+ times = 1000L)
Unit: microseconds
expr min lq mean median uq max neval
jaap1 318.193 364.6125 404.3224 389.5845 417.6405 1422.087 1000
apom 276.764 340.2740 389.1302 364.9650 398.3680 2854.710 1000
jaap2 121.332 158.4845 189.5616 182.2070 202.2390 1170.602 1000
jaap3 247.387 309.2445 351.6959 332.2710 365.3640 1361.720 1000
alpha 139.244 178.7460 209.6122 202.8580 226.7585 1092.301 1000
答案 1 :(得分:0)
With Worksheets("table")
With .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
.Cells(6, 2).Value = WorksheetFunction.CountIf(Worksheets("data").Range(.Address), "* cookies *")
End With
End With