excel 提取符合条件的单元格内容?

如何将有特定格式的单元格的内容统计出来,并依次排列好?如图所示,箭头上方是原始数据,一些符合要求的数值用特定格式标记了出来,想获得箭头下方的统计形式

用IF函数可以完成。举例说明:

有表格如下图,要求统计各项目的已过期合同金额。


第一步:在D2设置公式:=IF(B2<NOW(),C2,0)(含义:如图付款日期<当前日期,则=合同金额,否则=0)

第二步:将D2公式复制到D3:D16

第三步:在D17设置求和公式:=SUM(D2:D17)。结果如图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-09

'自定义公式-按ALT+F11-插入-模块(统计颜色)
Function 统计颜色(y As Range, rng, a As String)
Application.Volatile
Dim c As Double
Dim x As Range
For Each x In rng
If x.Interior.ColorIndex = y.Interior.ColorIndex Then
n = n + 1
If n = a Then 统计颜色 = x
End If
Next x
If 统计颜色 = 0 Then 统计颜色 = ""
End Function

追问

这是哪里出错了?

本回答被网友采纳
第2个回答  2020-12-16
把行列截图出来
写个程序vba就自动提取了填充颜色的数据追问

请大神赐教

追答

Sub 获取()

Dim i, k

n = 2

For i = 2 To 9

For k = 3 To 14

If Cells(i, k).Interior.Color = 5296274 Then

n = n + 1

Cells(13, n) = Cells(i, k)

End If

Next

Next

End Sub

追问

大神牛逼!
这样是不是换个颜色就不行了?那我要是把筛选条件换成某一区间的数值呢,比如>1且<60的数,该怎么办呢?

追答

Sub 获取()
Dim i, k
n = 2
For i = 2 To 9
For k = 3 To 14
If Cells(i, k)>1 AND CELLS(I,K)<60 Then
n = n + 1
Cells(13, n) = Cells(i, k)
End If
Next
Next
End Sub

本回答被提问者和网友采纳
第3个回答  2020-12-14
1. 在A1单元格中输入内容;
2. 在B1单元格中输入公式 =MID(A1, 开始提取处,字符串长度)
3. 回车,ok
第4个回答  2020-12-09
筛选条件是什么?按颜色筛选还是某一区间数据?追问

按照颜色或者字体,或者按照某一区间数据也可以,比如大于0.2的数据

相似回答