我有一张桌子,我想要计算一行中突出显示的单元格数量?
我试过寻找一个公式。我试着在有色单元格上获得COUNT-IF。
我猜你需要某种V.B.A.代码,因为没有公式(否则我不会在这里)
获取突出显示的细胞计数的任何选项?
答案 0 :(得分:0)
我不认为有一个像vlookup,sum,countif等直接的公式。所以不幸的是它需要一个宏。
创建一个宏,这是我使用的代码:
Sub COUNT_HIGHLIGHTS()
'
' COUNT_HIGHLIGHTS
'
'Defining variables
Dim LastRow As Long, Count As Integer
'Getting a number value for the number of rows in the table (as this can vary on table size)
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
'For loop to loop through rows
For i = 2 To LastRow
'Count is the number of cells in the row which are highlighted
Count = 0
'For loop for cells within the row (My table always has 36 cells)
For j = 5 To 36
'If statement to check if cell is highlighted
If Cells(i, j).Interior.Color = 65535 Then
'Add +1 to count ever time a highlighted cell is found
Count = Count + 1
End If
Next j
'find cell at the end of the row and add the count
Cells(i, 37).Select
Selection.Value = Count
Next i
End Sub
一旦完成,你会在最后得到一个专栏
第1栏|第2栏|第3栏| ......列在你的桌子外面 ColValue 1 | ColValue2 | ColValue3 | ....... 5(如果表中的5个单元格突出显示)
然后只需将表格过滤到您为0以外的所有内容创建的计数值
希望这有帮助
答案 1 :(得分:0)
您可能希望使用UDF(用户定义函数)。这是一个。它将计算所有不是没有颜色的细胞,无论它们具有哪种颜色。
Function HighLightCount(Target As Range) As Integer
' 14 Feb 2018
Dim Cell As Range
Dim Fun As Integer
For Each Cell In Target
Fun = Fun - Int(Cell.Interior.Color <> 16777215)
Next Cell
HighLightCount = Fun
End Function
将代码安装在标准代码模块中(默认情况下为Module1
,直到您更改名称)。从工作表中调用函数,就像普通的Excel函数一样,例如,
=HighLightCount(A2:J2)
您可以像其他任何单元一样将公式复制/粘贴到其他单元格。您也可以将其嵌入Excel的内置函数中,例如
=IF(HighLightCount(A6:J6)>2,SUM(A6:D6),SUM(E6:J6))
答案 2 :(得分:0)
如果您想按特定颜色搜索单元格,以下UDF会对您有所帮助。
SearchRange
RefCellColor
是您搜索的范围,SearchRange
是您在 import {Injectable} from '@angular/core';
@Injectable()
export class CommonService {
commonFunction(list: any[], obj: any, key: string): number {
// Your logic here.
//return your logic varibale
}
}
查找的颜色格式的参考单元格。
答案 3 :(得分:0)
是一种在没有VBA的情况下执行此操作的方法 - 但是它非常混乱,并且在命名范围内需要“工作”行和Excel4宏。我只是为了完整性而详述。
步骤1:创建一个名为“Background_Below”的命名范围(FORMULAS&gt; NAME MANAGER),并按照以下内容进行操作:=GET.CELL(63,INDIRECT("r[-1]c",FALSE))
步骤2:在行下面的行上添加一个工作行,以便计算突出显示的单元格,并将公式=Background_Below
放入行中。 “无颜色”为0或“颜色”为> 0(实际值将是与上面单元格颜色最接近的xlColorIndex
值)
步骤3:执行工作行> 0
的COUNTIF
正如我所说的那样,它很乱 - 至少9倍于10倍,你最好在VBA中使用用户自定义函数。但它有可能