excel问题自我小结:因工作需要以excel表格分享给运营同事,在经过SQL取数后导出查询结果,再通过excel处理数据时出现了认知漏洞,不过作为数据分析人员,发现问题分析问题是再正常不过了,这里很小白的问题,但是还是应该做个记录便于积累。
1.1、发现问题1
两表连接查询,记录每日店铺的营收金额,SQL导出每日的数据存于表Sheet1中,根据店铺shop_id进行匹配:
vlookp函数介绍:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
vlookup函数有如下参数:
- lookup_value“查找值”即要查询的商品项;
- table_array“数据表”就是数据源区域,切换到被查询表,选中对应区域;
- col_index_num“列数据”指目标列在整个框定区域的第几列,在第2列则填2;
- range_lookup“匹配条件”分为精确查找0和模糊查找1;
在输入vlooup第二个参数,即查询表时,报错提醒,提示输入的公式错误,如果您输入的内容那个不是公式,请在第一个字符前输入单引号。
1.2、解决问题1
经过查询和向数据分析社群的小伙伴咨询,在社群多为大神(微信昵称:走路都要发呆、吴丹、邬椎、孔雀东南飞)热心帮助下,最后发现是所在查询表的匹配项shop_id格式不匹配,mySQL在导出查询结果表时统一按utf-8编码保存数据。
敲黑板,这里修改数据时容易出现的错误,也是本人出现的错误,即选择数据后,选中数据列后,在工具栏更改数据类型为数值时,是不起作用的,这里修改的只是对单元格的格式进行了修改,而没有对数据本身进行更改!
因此需要对数据本身进行格式转换,全部选中shop_id后按Ctrl键点击列标题取消列标题选中状态,出现感叹号选项,点击进入下拉菜单,选择:转换为数字。
再运行vlookup函数即可正常匹配数据
2.1、发现问题2
在正常匹配数据后,对函数进行下拉复制,结果发现很多空格为缺失值,点击缺失值单元格,发现vlookup第二个参数的查询表格区域随着下拉在不断缩小。
2.2、解决问题2
问题解决方案在于如何在下拉过程中避免所选表格区域会随着下拉缩小,这里笔者知道要修改单元格选中的格式,在行列前面分别加上“$”符即可,随机修改函数,完成操作发现查询结果正常显示。
3.1、发现问题3
在解决前两步问题后,数据匹配准确无误,但是由于业务原因,部分店铺没有营收,在SQL导出的数据表中并不存在,因此查询时显示为#N/A,为了便于统计计算,这里笔者希望能将缺失的店铺营收自动填为0。
3.2、解决问题3
解决思路是店铺有值显示值无值#N/A显示0,这类判断表达式计算结果是否有效的情况需要使用IFERROR函数,IFERROR函数的作用是用于判断表达式的计算结果是否有效,当有效时会返回表达式计算出的值,当表达式计算结果无效时将返回事先设定的内容。这样我们可以将#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL等用其他内容表示。
IFERROR函数介绍:
IFERROR(value, value_if_error)
IFERROR 函数语法具有下列参数:
- 取值:必需,检查是否存在错误的参数。
- value_if_error:必需,公式计算错误时返回的值。
计算以下错误类型: #N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?或 #NULL!
经过公式调整,最终得到目标需求。
4、自我总结
- 认知漏洞还是很多,没有大小一说,只要是自己不知道的都是大问题;
- 多记录,多积累,集腋成裘,积沙成塔;
- 保持解决问题的耐心和决心,不抛弃不放弃;
- 尽量自己解决,掌握解决问题的方法比掌握解决某一个问题本身更重要;
- 如果真进入死胡同也不建议过多耗费时间,走出去问问大神,群体的力量还是很强大的。