ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 山菊花

[Excel 函数与公式] [开_96] 条件格式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-4-5 13:38 | 显示全部楼层
3楼和8楼其实是一样的,呵呵对吗?
[此贴子已经被作者于2006-4-5 13:40:16编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-5 16:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用chrisfang在2006-4-5 13:38:48的发言:
3楼和8楼其实是一样的,呵呵对吗?

3楼=($I3<>"")*(MOD(SUM(1/COUNTIF($I$3:$I3,LEFT($I$3:$I3,4)&"*")),3)=1)

8楼=(MOD(COUNT(1/(MATCH(LEFT($I$3:$I3,4)&"*",$I$3:$I3,)=ROW($I$3:$I3)-2)),3)=1)*($I3<>"")

怎么叫其实是一样的呢?本身在求不重复个数里这就是2种解法。

countif函数高能低效率,但如果数据量不大的话,倒是可以缩短工式长度。数据量大的话1/countif的方式会由于Excel的浮点运算出现一些问题,比如用于等号的时候row(1:1)=sum(1/countif())+1的时候,往往就是False。

match函数高效率!

[此贴子已经被作者于2006-4-5 18:06:20编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-19 21:57 | 显示全部楼层
这个题目与其说是“基础操作题”,还不如说是“函数题”,条件格式里面的设计必须用到复杂的公式计算,没有一定的函数基础这种题目想都不用想。

TA的精华主题

TA的得分主题

发表于 2006-4-19 22:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

呵呵,想想chenhuafu兄的话也有道理。

条件格式属于基础应用,但里面的条件用了函数公式。(除了条件格式自带的“介于、等于……”之类的以及直接引用单元格的外都用函数了)

还有一种定义名称也属于基础应用(如果定义名称里面除了等号和单元格区域外,也基本都要涉及函数了),所以,BIN_YANG168的基础28题改了“不使用函数”的说法。

TA的精华主题

TA的得分主题

发表于 2006-4-26 06:56 | 显示全部楼层
=($I3<>"")*(MOD(INDEX(FREQUENCY(--MID($I3:I$3,6,6),--MID($I3:I$3,6,6)),1),3)=1) 用FREQUENCY做的。没有脱开利用序号“1”的方法。 yxWcqO9B.rar (8.73 KB, 下载次数: 23)

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-8 11:47 | 显示全部楼层
时间到,请版主给分吧。 忽然想到,按分组记录设置不同背景(或前景)色还是有实际意义的,把它放在竞赛区是为了引人注目。 小结一下,主要是从各位的答案中吸收点营养,谢谢参与答题的朋友。rongjun的水平与他的头像一样耀眼,是我们学习的榜样,两个答案应该得两份的分,大概版主也是这么想的。 三种颜色循环往复,周而复始,这种特征,首先让我们把目标锁定在Mod()函数,不错,有了Mod(),我们就能得到重复的序列“1、2、3、1、2、3、1……”,也就能得到“红、黄、蓝、红、黄、蓝、红……”之类的颜色系列。 本题的难点是如何得到组的序号,不能用记录数来计算,因为各组的记录数多少不一,没有规律,同roungjun(不称呼大师,没意见吧?呵)开始的想法一样,我也是注意到每组有个相同的特征,有一个唯一的“1”,从第一行开始到当前行有多少个1,当前行就是第几组,roungjun的计算方法是“SUM((MID($B$3:$B3,6,255)+0=1)+0)”,我先想到的计算方法是“COUNTIF($B$3:$B3,"*-1")”,gouweicao78(是个讲究效率的人)说的,写起来好看一些,执行起来慢一些。 qlz110 明明有答案,可是没有上传,为什么? 是qlz110 让本问题更具普遍意义,比给出一个类似的答案更应给分,对不对?1分,有意见的骂我好了。 眼光从“1”往前移,与gouweicao78一样,脑子中逐渐清晰的函数是“SUM(1/COUNTIF($B$3:$B3,LEFT($B$3:$B3,4)&"*"))”,计算不重复值的个数!到当前行为止,有多少个不重复值,就是到了第几组,同样就有了1、2、3、1、2……。rongjun的第二个答案让gouweicao78好好谦虚了一番,我呢,向gouweicao78学习,谁让我们想到同一个答案。“COUNT(1/(MATCH(LEFT($B$3:$B3,4)&"*",$B$3:$B3,)=ROW($B$3:$B3)-2))”,这是rongjun的公式,计算第一次出现的文本的个数,也就是不重复文本的个数。 “INDEX(FREQUENCY(--MID($I3:I$3,6,6),--MID($I3:I$3,6,6)),1)”,hbhfgh4310的公式是花了脑筋的,抓住了后面的数字“不重复”的特征,计算到当前行止有多少个1,充分发挥FREQUENCY()的统计性能。从应用函数的角度看,应该是个不错的想法。 还有一种思路,对比上下行(前4个字符),如果值不相等,即是出现新行: IF(LEFT($B$3:$B$31,4)<>LEFT($B$2:$B$30,4),ROW($B$3:$B$31)) 用当前的行号与上面结果相比,可以计算出排列的位置,从而得到当前行所在的组的序号。 绕了一个大圈子,不推广。 题目还有一个要求“空白区域不显示背景色”,各位都想到用个And()解决,当然,写起来都愿意用“*”,这样简单。 从竞赛角度说,我们也可以不用这个“*”: 1、表格的背景色不使用默认的白色,把背景色设置为“第一组”的背景色。 2、设置第一个条件:=$C3=0,背景为白色。 3、剩下的记录,我们要区分“第二组”和“第三组”: “=MOD(COUNTIF($B$3:$B3,"*-1"),3)=2 ”是第二组的条件; “=MOD(COUNTIF($B$3:$B3,"*-1"),3)=0 ”是第三组的条件。 总结完毕。我把所有答案都复制到同一个工作簿里: g1BpX6e1.rar (10.12 KB, 下载次数: 103)

TA的精华主题

TA的得分主题

发表于 2006-5-15 21:53 | 显示全部楼层
最近正要做个类似的表格,正好能用上。
问题是表格中数据量比较大,有400多行,公式执行比较慢,尤其是滚动条往下拉时,Excel几乎停滞。应该是行号越大,数组运算量越大吧。

请问有什么好的解决办法?谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-18 14:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

行数越多,数组越大,运算量也就越大,速度就下降。

建议用VBA。

同类问题:

[求助]给同一列中几个相临且相同的数值加不同的颜色
作者:hwzzyhwzzy  →   『 Excel 函数与公式 』

[此贴子已经被作者于2006-8-13 20:50:04编辑过]

TA的精华主题

TA的得分主题

发表于 2006-5-21 09:41 | 显示全部楼层
山菊花版主总结得很好,受益了。
[此贴子已经被作者于2006-5-21 9:43:47编辑过]

TA的精华主题

TA的得分主题

发表于 2006-5-21 13:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢花斑竹.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 04:59 , Processed in 0.044094 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表