Hello,大家好!今天和大家分享,如何在Excel中使用条件格式制作五星级评定,效果如下图所示。

观察上图,我们需要注意以下两点:
数值转换
(2)“满意度”的小数部分,如果大于或等于0.5,则显示为半颗星;如果小于0.5,则显示为0颗星。
如下图所示,“满意度”数值为介于0-100之间的数值。为了便于进行五星级评定,需要将B列的数值转换为1至5之间的数。
对满意度的打分采用百分制,最低分为0,获得0颗星,满意度星级评定为最低。满意度最高分为100,获得5颗星,满意度星级评定最高。满意度最高分100与满意度最低分0之间的差值100,除以5(因为是用5颗星进行评级),得到20。每获得20分,就可以得到完整的1颗星。
理解上述逻辑后,我们就可以在C列辅助列构建以下公式:=(B2-$F$2)/$F$3,即(满意度-最小值)/间隔。
当“满意度”数值介于1到5时,我们需要使用公式把满意度数值拆分为如下图C列至G列所示的效果。
=IF(COLUMN(A$1)<=$B2,1,IF(ROUNDUP($B2,0)=COLUMN(A$1),MOD($B2,1),0))观察上述公式的结果,可以发现,我们将B2单元格的数值“1”拆分为“1+0+0+0+0”;将B3单元格的数值“1.5”拆分为“1+0.5+0+0+0”;将B4单元格的数值“2.3”拆分为“1+1+0.3+0+0”……。也就是说,我们将B列的数值拆分为由1、小数部分、0构成的5个数值。(1)COLUMN(A$1)用于获取A1单元格的列号,此处返回值为“1”。由于A$1是列号为绝对引用,行号为相对引用的混合引用,当C2单元格向右向下复制时,COLUMN函数会在每一行的C至G列中依次返回数值“1、2、3、4、5”。(2)IF函数将B列中的满意度数值依次与C列至G列中的COLUMN函数返回的“1、2、3、4、5”进行比较,如果大于或等于COLUMN返回的数值,则返回“1”;如果B列中的数值向上舍入的结果(即ROUNDUP函数返回的数值)与COLUMN返回的结果相等,则返回B列数值的小数部分(即MOD函数返回的结果);以上条件均不满足,则返回“0”。选中C列至G列拆分的数值后(即C2:G8),单击【开始】-【条件格式】-【新建规则】,打开【新建格式规则】对话框,如下图所示。
(1)【选择规则类型】单击“基于各自值设置所有单元格的格式”;
勾选【仅显示图标】,如果不勾选这个选项,数值和星形均显示出来。勾选后,仅显示星形(5)【类型】均选择“数字”,【值】分别为“1”、“0.5”。
单击确定后,结果如下图所示:
观察上图,虽然我们已经成功为满意度设置五星级评定,但还是有一个地方不太美观。同一行的五颗星形之间有边框分隔开,不便于将其视为一个整体,因此需要将同一行的星形之间的边框消除。这一部分介绍如何将同一行的星形之间的边框消除,以便于将其视为一个整体。选中C2:G8,打开【设置单元格格式】对话框,选择【边框】选项卡,将竖直的内部边框取消。设置的结果如下图所示:上文中星形所在的单元格区域设置的字体为“微软雅黑”。而如果将字体修改为“宋体”,星形的外观会稍有不同,如下图所示: