关于导出功能的设计与思考

9 评论 26279 浏览 168 收藏 17 分钟
🔗 产品经理专业技能指的是:需求分析、数据分析、竞品分析、商业分析、行业分析、产品设计、版本管理、用户调研等。

编辑导语:导出功能我们经常能够使用到,看似一个很简单的功能,实则在设计的过程中需要考虑很多的因素。本文作者对导出功能的全过程进行了思考,为我们分析了两种解决方案,拆解了导出前和导出时的设计,并且进行了总结。

一、引言

功能(百度释义):功能是一个汉语词语,拼音为gōng néng,意指事物或方法所发挥的有利作用;效能。

综合以上释义,我们再从产品的角度对其理解:功能的好坏不仅仅关乎其本身,更重要的要看是否为解决实际问题而服务。

那导出功能,解决了什么样的问题?我们先来看一个场景。

小A作为一名销售人员,需要每月向领导汇报一次销售情况,为了更直观的让领导看到销售情况,小A要对销售订单数据进行不同维度展示与分析。而目前系统只能查看订单列表与销售总额,不支持不同维度的数据分析。

从场景中我们可以看到这样一个问题,由于系统只能查看订单列表与销售总额,不支持更全面的数据分析,导致小A每次向领导汇报前,只能人工将一个月近5000笔的订单(此处不考虑后续不断增加的订单量)统计在excel中,从客户维度计算出销售额、销售量,完成客户维的销售情况分析。

从产品SKU维度计算出销售额、销售量,完成产品SKU维销售情况分析,导致小A的工作效率很低,同时人工抄录导致数据错误的的情况也常会出现,最终导致数据分析结果错误。

针对该问题,我们深入思考一下,小A想要进行更全面的数据分析,可以采用以下2种解决方案:

  1. 新增销售数据分析页面,如使用销售额排行榜表示客户贡献值高低、使用产品SKU的销售量饼状图表示单品的受欢迎程度等;
  2. 导出销售数据到excel,通过excel的数据透视功能完成客户贡献值分析、单品的受欢迎程度分析等。

二、解决方案分析

目前我们有两种解决方案可供选择,那我们采用哪一种解决方案会更好呢?

1. 方案假设论证

1)采用“新增销售数据分析页面”的解决方案

通过与小A的继续沟通发现数据分析的需求并不稳定,处于变化的状态。当依据小A的需求完成分析页面后,过了一段时间发现产品随着季节变化导致销售额也不稳定,从时间维度的分析数据没有参考价值,可能要舍弃这种分析方式。

此时我们发现,小A的需求可持续的时间极为短暂,不足以支撑一个长期存在的功能,但已经将其实现为功能,则意味着功能白做了或没有产生与成本对应的价值。

2)采用“导出销售数据到excel,通过excel的数据透视功能完成数据分析”解决方案

导出销售数据到excel,可以规避因手动抄录导致的数据分析结果错误问题,同时也会节省抄录数据的时间,提高小A工作效率。

数据导出后,小A可以通过excel的数据透视功能或者其他第三方软件完成定制化的数据分析,即使不开发数据分析功能,也可以满足小A的“更全面的数据分析”需求。

例如,当小A导出如下图所示的数据后:

小A第一步可以先完成不同月份的汇总,在表中添加“月份”字段,添加公式为“=MONTH(A2)”;

第二步:再点击表格中任意单元格–插入–透视表–新建工作表,将省份拖入数据透视表字段的【筛选器】,将月份拖入【行】中,将A、B、C、D产品销售额(元)拖入【值】中;将行标签改为月份,每个字段以求和方法计算并修改字段名称。

第三步:选中透视表中数据,调整格式为加千分位逗号,保留0位小数。

第四步:为了让数据展现可视化,插入透视图。

通过公式筛选、透视表、透视图的使用,小A可以点击查看不同地区、月份、产品的分类汇总数据,可以很直观地反映出时间维度的销售情况、不同地区的销售情况、很好地为产品选择、地域选择做出数据依据支撑。

数据分析功能会从数据源、数据处理、数据的可视化来实现,而Excel的透视表对应了数据明细(数据源),公式能够完成较多的数据计算任务(数据处理)。

透视图可以直观、清晰的展示各类产品在不同月份、不同地区的销售情况及总的销售情况分析,为产品布局提供指导性参考依据(数据可视化)。

另外当小A从数据透视图看到某个月份销售额过高,可以直接点击查看透视表中的数据明细是否存在错误,当小A想查看每个产品销售额的占比,可以新建数据透视表并将透视图切换成饼状图查看。

由此可见,用Excel来做数据分析不仅可以很灵活的满足需求,而且还很实用、很方便,也不会因功能的限制导致对数据无法分析。

2. 方案选择

通过以上论证,我们发现,既要能够解决问题又要支撑一个长期存在的功能,还要用较低成本以及最快的方式来完成,我们采用最佳的解决方案:“导出”。

三、导出功能设计

既然已经明确最佳解决方案是“导出”,那接下来就从导出的全生命周期看看,如何设计导出功能?

1. 导出前设计

1)明确导出数据限制

无论当前的系统数据量是多少,建议都要做导出条数限制。

因2003版的excel 一个sheet表最多导出65535条数据,2007版的excel是10万4000多条。如果不设限,当用户导出的数据量超过excel单个sheet的数据量时,会出现导出失败的情况,影响用户的正常使用,且产生对系统的不信任情绪。

那应该限制到多少条数据?

我们先来了解一下导出的技术原理,当用户点击导出后,数据会被以excel的形式下载到服务器,服务器再通过网络将文件发送给用户。

在这个过程中,导出条数受限制的原因一个是服务器性能,另一个是用户的电脑性能以及所使用excel版本,在实际产品设计时,根据实际情况,制定一个合理的数据限制即可。

回到开头的场景中,用户不仅要导出数据还要做数据透视表,假设用户使用的03版excel,导出30多个字段,使用大量excel公式,最稳妥的是限制到1万条数据以内。

做了一组极限测试数据供大家参考,使用一台2核4G的服务器、1个用户使用、导出条数是1048576条(导出最大条数)、导出3个字段、使用2010版excel,导出后当使用一个sum公式时,出现了如下图的错误,导致excel异常退出。

2)明确导出格式

数据导出格式有.xls和.csv,.xls是二进制的文件用excel才能打开;.csv是文本文件,用记事本就能打开。而当前用户导出数据后要进行的是数据分析,故只需支持.xls导出。

3)明确导出需求

导出一个excel一个sheet,还是一个excel多个sheet?

考虑到用户导出数据后要对订单数据进行分析,可以与用户明确是否需要按某一维度如客户维度将数据拆分成多个sheet,减少用户操作数据的时间以便能把更多精力放在数据分析。

如果用户不需要按照某一维度拆分数据,则采用导出一个excel一个sheet的方式。

表头是否需要增加序号列?

当用户导出订单数据后,为了让用户准确操作某一行数据,需要有唯一代表一行数据的标记,而在订单导出前是以数据库的主键来标记,对于导出后的订单,则需要自动增加序号列方便用户操作。

是否有内容需要用颜色标注区别?

在导出订单数据中,为了快速掌握销售情况,有些数据是需要特别关注的、而有些不需要。因此,可以使用颜色标注来做区别,让查看人员快速找到自己想要的数据,如可以标注总计快速查看总销售额。

是否需要合并单元格?

对于导出后进行数据分析,不建议使用合并单元格,因excel中合并单元格后仅保留左上角的值如下图所示,这样会使得筛选出现错误,也影响批量的公式使用导致透视表无法分析。

如果导出后只查看数据,可以考虑使用合并单元格。

2. 导出时设计

1)是否需要导出维度

百度释义:维度是事物“有联系”的抽象概念的数量,如时间维度是以时间作为描述、表达变量的度量尺度。

导出维度是指的按照特定场景下,导出以某个字段为主导数据且与该字段相关的其他字段数据。

一般来说,财务和仓库的导出业务场景不同,财务需要以订单维度导出,仓库需要按商品为维度导出,如果无需导出维度,则不需要过度设计。

2)设置表头导出字段

由于订单的一条记录数据字段会很多,包括:订单号、销售类型、客户名称、产品名称、数量、单价、收货人、联系电话、账期、发货时间、预约到仓时间、发货基地名称、发货方式、合同折让率、应收款、已收款、未收款、产季等近30个字段。

而订单分析时,收货人、联系电话、发货时间等字段则无需导出。

因此选择字段导出,可以让客户能够更快速使用并完成分析。导出和查询均要使用筛选,但呈现结果的方式不同,两者的使用场景是可以借鉴的,建议可以放置筛选区。

3)是否需要支持选择行导出

一般来说,导出数据为全量数据,如果用户通过字段选择不出需要的数据,此时要支持用户勾选某些行数据,提示用户当前勾选数据明细及数据条数。

4)其他处理

为了让客户清晰的明白订单是如何导出的,需要在导出时给予导出规则、导出图片、附件形式说明文字提示。

  1. 是否需要导出规则说明;
  2. 导出图片、附件只能以链接形式导出说明;
  3. 导出数据中是否存在日期和时间,需针对时间戳提前处理。

5)根据导出数据量,明确数据处理方式

从技术的角度说,针对较大数据量的导出场景,可以采用异步的处理方式,降低客户的焦急心理。

所谓异步,就是用户点击导出按钮后,后端接收请求并执行读取任务,用户可以不用停留在原处等待,离开当前页面去处理其它工作任务,之后再打开任务页面查看导出结果。

如果有数据可以预先计算,后端可以直接预先计算,同时避免了因采用同步的处理方式导致长时间等待的结果,客户体验会更好,工作效率也会更高。

  1. 是否需要异步处理;
  2. 是否需要预先计算。

6)是否需要任务页面

如果用户点击“导出”按钮后,10秒钟内不能完成文件打开,会让用户产生焦虑心理。为了让用户使用体验更佳,需要有一个固定页面即任务页面来承载导出任务列表。

四、总结思考

1. 从导出功能看功能设计流程

功能,是为解决问题而生,而功能的起源是需求,需求是从场景中找到问题。

由此可见,功能设计流程一定会包含场景选定、问题分析并找准需求、解决方案分析、选定功能、功能设计这5个阶段。

做功能设计时,时刻问自己三个为什么:为什么这是一个问题(问题具备危害性)?为什么要解决这个问题(被解决的价值)?为什么我选定的功能可以解决这个问题(功能的价值)?

2. 导出能够解决的问题

导出不仅可以解决文中的“需要更全面的数据分析”的问题,还可以解决“数据离线使用”的问题,导出后,数据以本地文件的形式存在,可离线使用。

另外导出还能解决“数据交付系统外部人员”的问题,导出后,数据以独立文件的形式存在,可以复制,传递。

3. 可优化方向

  1. 当系统页面越来越多,导出也在多个页面出现时,可考虑使用一个配置导出页面统一管理系统中所有的导出;
  2. 当用户使用导出功能后不停留在原处等待时,出现导出异常,采用短信或邮件通知用户,让用户及时知道导出进度不至于耽误工作。

本文由 @努力的小妖 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Pexels,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 数据分析的话CSV 格式更好

    来自广东 回复
  2. 感觉懂了,又好像没懂

    来自浙江 回复
  3. 请问:场景是人员信息的导入导出。导入时是分人员基本信息(姓名/性别等)、和人员身份证图片信息两部分导入的。那么导出的时候是否也要分维度(基本信息+身份证图片信息)分开导出呢?

    来自上海 回复
  4. 学习了

    来自广东 回复
  5. 写的很棒,感谢

    来自广东 回复
  6. 相当全面,膜拜

    来自河北 回复
  7. 想问一下导出功能与新增前端页面的技术复杂性哪个更高一点呢

    来自湖南 回复
  8. 学习了,感谢。

    来自广东 回复
  9. 导出任务单独做了界面,入口放哪里呀

    来自浙江 回复
专题
12288人已学习13篇文章
商业保理,即保付代理。本专题的文章分享了关于商业保理的讲解。
专题
13160人已学习13篇文章
对企业而言,计费管理系统是相对基础和重要的一个系统,那么,怎么搭建计费管理系统呢?你了解计费系统的主要功能吗?本专题的文章分享了计费系统设计指南。
专题
13190人已学习12篇文章
随着互联网的不断发展,如今获客渠道及方式也有很多。本专题的文章分享了获客渠道及方法。
专题
12303人已学习12篇文章
现如今,越来越多的企业开始重视私域,很多的企业都对私域的发展进行了布局。本专题的文章分享了如何搭建私域模型。
专题
19533人已学习13篇文章
什么是中台?为什么要建中台?中台建设的切入点在哪?本专题的文章将提供这些问题的解答。
专题
14076人已学习14篇文章
在很多产品中,搜索都是其中比较基础且很重要的一个功能。搜索的设计、逻辑、交互等问题也是需要特别注意,本专题的文章分享了电商搜索功能的设计指南。