You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel图表制作:如何忽略带*标记的无效数据点

嘿,这个问题我之前帮同事踩过坑,Excel默认把带*的文本值当成0确实闹心,给你几个实用的解决办法,按需选就行:

方法1:预处理提取有效数据(最直观,适合小批量)

先把原始数据里的有效数值单独拎出来,再用干净的数据做图表:

  • 如果你的数据是单单元格内用空格分隔(比如A1是整行数据),用Excel 365/2021的新函数一键提取:
    =TEXTJOIN(" ", TRUE, FILTER(TEXTSPLIT(A1, " "), LEFT(TEXTSPLIT(A1, " "), 1) <> "*"))
    
    这个公式会先把单元格内容按空格拆分成单个数据项,过滤掉开头带*的无效值,再把剩下的有效数值用空格拼接起来。
  • 要是用的是旧版Excel(没有TEXTSPLIT),可以用这个数组公式(输入后按Ctrl+Shift+Enter确认):
    =TEXTJOIN(" ", TRUE, IF(LEFT(TRIM(MID(SUBSTITUTE(A1, " ", REPT(" ", 100)), (ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*100+1, 100)), 1) <> "*", TRIM(MID(SUBSTITUTE(A1, " ", REPT(" ", 100)), (ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*100+1, 100)), ""))
    
  • 提取完后,用「数据→分列」功能,按空格把拼接好的数值拆成单独的列,再用这些列做图表就行。

方法2:直接让图表忽略无效值(不用动原始数据)

如果不想修改原始数据,只要把无效值转成空单元格,再设置图表忽略空值:

  1. 假设原始数据是按列排列的(每个数据点占一个单元格),在旁边新建一列,用公式判断:
    =IF(LEFT(B1, 1) = "*", "", B1)
    
    下拉填充所有行,这样带*的无效值会变成空单元格。
  2. 选中这些空单元格,右键选择「隐藏」(列的话隐藏列,行的话隐藏行),然后制作图表,Excel默认会忽略隐藏的单元格数据。
  3. 或者图表做好后,右键点击数据系列→选择数据→点击「隐藏的单元格和空单元格」→选择「空单元格显示为:空距」,这样空值就不会被当成0显示了。

方法3:用Power Query批量清洗(适合几千行的大数据)

如果数据量很大,手动处理太麻烦,用Power Query批量清洗效率更高:

  1. 选中原始数据区域,点击「数据」选项卡→「从表格/区域」,导入Power Query编辑器。
  2. 如果数据是单单元格内用空格分隔,点击「拆分列→按分隔符」,选择空格,把数据拆成多列。
  3. 选中所有列,点击「转换→替换值」,把包含的内容替换成空;或者直接筛选掉开头带的列/行。
  4. 点击「关闭并上载」,把清洗好的数据导出到新工作表,直接用这个干净的数据源做图表就行。

最后提醒下:如果你的数据是按行排列的,制作图表时记得选择「按行」作为数据系列,这样有效数据就会按你想要的顺序排列成94.22 96.80 95.29 96.38 94.67 95.22啦。

内容的提问来源于stack exchange,提问作者d01

火山引擎 最新活动