请问excel表里一行中有10个√,有红有黑,想在第11个格中统计红色的有几个,应该怎么操作?

请问excel表里一行中有10个√,这些√有红色的,有黑色的,想在第11个格中统计红色的有几个,具体用什么函数或者应该怎么弄呢?
大概问题是这样的,实际表格里有n多行,每行都要统计,一行一行数太耽误时间了。查找里可以查找不同字体颜色的,但是怎么让查找结果显示在单元格里呢,一行一行查找也很麻烦,求助QAQ

不得不说在表格中使用不可统计的颜色标注是个糟糕的做法——虽然容易区分……

解决它:

人为设定的颜色是不能通过Cell函数获取信息的,因此跑一遍宏可能是必须的:

JS宏


图中的宏是 WPS 的 JavaScript 宏,会VBA 的话可以自己转一下。当然,你也可以用 WPS Office 打开这个工作簿,然后将图中的JS宏跑一遍就可以了。然后在指定的单元格统计"R"(或者"B")的个数就可以了。

改进建议:

摆脱红、黑√的折磨! 

红√ 改成其他可读有意义的字符,比如:完成、yes、done、1、ok……黑√也改成区别于前者的有意义字符。就输入效率、可统计性方面应该都比红黑√来得实在。


JS宏:

function badIdea(){

let g = Range("B2:B3") // 将B2:B3 改成你的√的区域

/*

开始处理,选择很多:

1. 红√ 改成 “R”,黑 √ 改成 "B",或者其他具体有意义字符;

2. 在额外的单元格写入对应的替代有意义字符或数值;

……

这里我们在有√的后一格写入 R 或者 B;

*/

for(let i = 1; i<=g.Count; i++){

let g_content = g.Item(i).Value() // 获取内容

let g_fontColor = g.Item(i).Font.Color // 获取字符颜色;

// 红色√

if(g_content=="√"&& g_fontColor==255){

g.Item(i).Offset(0,1).Value2 = "R"

}

if(g_content=="√"&& g_fontColor==0){

g.Item(i).Offset(0,1).Value2 = "B"

}

}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-04-11
1、打开查找替换对话框,在查找内容框里输入✓,点格式,选择红色。在替换为框里输入A,点全部替换。
2、在第11个格中用countif函数统计前10格里A的个数,并将公式下拉自动填充。本回答被提问者采纳
相似回答