關(guān)于導(dǎo)出功能的設(shè)計與思考
編輯導(dǎo)語:導(dǎo)出功能我們經(jīng)常能夠使用到,看似一個很簡單的功能,實則在設(shè)計的過程中需要考慮很多的因素。本文作者對導(dǎo)出功能的全過程進行了思考,為我們分析了兩種解決方案,拆解了導(dǎo)出前和導(dǎo)出時的設(shè)計,并且進行了總結(jié)。
一、引言
功能(百度釋義):功能是一個漢語詞語,拼音為gōng néng,意指事物或方法所發(fā)揮的有利作用;效能。
綜合以上釋義,我們再從產(chǎn)品的角度對其理解:功能的好壞不僅僅關(guān)乎其本身,更重要的要看是否為解決實際問題而服務(wù)。
那導(dǎo)出功能,解決了什么樣的問題?我們先來看一個場景。
小A作為一名銷售人員,需要每月向領(lǐng)導(dǎo)匯報一次銷售情況,為了更直觀的讓領(lǐng)導(dǎo)看到銷售情況,小A要對銷售訂單數(shù)據(jù)進行不同維度展示與分析。而目前系統(tǒng)只能查看訂單列表與銷售總額,不支持不同維度的數(shù)據(jù)分析。
從場景中我們可以看到這樣一個問題,由于系統(tǒng)只能查看訂單列表與銷售總額,不支持更全面的數(shù)據(jù)分析,導(dǎo)致小A每次向領(lǐng)導(dǎo)匯報前,只能人工將一個月近5000筆的訂單(此處不考慮后續(xù)不斷增加的訂單量)統(tǒng)計在excel中,從客戶維度計算出銷售額、銷售量,完成客戶維的銷售情況分析。
從產(chǎn)品SKU維度計算出銷售額、銷售量,完成產(chǎn)品SKU維銷售情況分析,導(dǎo)致小A的工作效率很低,同時人工抄錄導(dǎo)致數(shù)據(jù)錯誤的的情況也常會出現(xiàn),最終導(dǎo)致數(shù)據(jù)分析結(jié)果錯誤。
針對該問題,我們深入思考一下,小A想要進行更全面的數(shù)據(jù)分析,可以采用以下2種解決方案:
- 新增銷售數(shù)據(jù)分析頁面,如使用銷售額排行榜表示客戶貢獻值高低、使用產(chǎn)品SKU的銷售量餅狀圖表示單品的受歡迎程度等;
- 導(dǎo)出銷售數(shù)據(jù)到excel,通過excel的數(shù)據(jù)透視功能完成客戶貢獻值分析、單品的受歡迎程度分析等。
二、解決方案分析
目前我們有兩種解決方案可供選擇,那我們采用哪一種解決方案會更好呢?
1. 方案假設(shè)論證
1)采用“新增銷售數(shù)據(jù)分析頁面”的解決方案
通過與小A的繼續(xù)溝通發(fā)現(xiàn)數(shù)據(jù)分析的需求并不穩(wěn)定,處于變化的狀態(tài)。當依據(jù)小A的需求完成分析頁面后,過了一段時間發(fā)現(xiàn)產(chǎn)品隨著季節(jié)變化導(dǎo)致銷售額也不穩(wěn)定,從時間維度的分析數(shù)據(jù)沒有參考價值,可能要舍棄這種分析方式。
此時我們發(fā)現(xiàn),小A的需求可持續(xù)的時間極為短暫,不足以支撐一個長期存在的功能,但已經(jīng)將其實現(xiàn)為功能,則意味著功能白做了或沒有產(chǎn)生與成本對應(yīng)的價值。
2)采用“導(dǎo)出銷售數(shù)據(jù)到excel,通過excel的數(shù)據(jù)透視功能完成數(shù)據(jù)分析”解決方案
導(dǎo)出銷售數(shù)據(jù)到excel,可以規(guī)避因手動抄錄導(dǎo)致的數(shù)據(jù)分析結(jié)果錯誤問題,同時也會節(jié)省抄錄數(shù)據(jù)的時間,提高小A工作效率。
數(shù)據(jù)導(dǎo)出后,小A可以通過excel的數(shù)據(jù)透視功能或者其他第三方軟件完成定制化的數(shù)據(jù)分析,即使不開發(fā)數(shù)據(jù)分析功能,也可以滿足小A的“更全面的數(shù)據(jù)分析”需求。
例如,當小A導(dǎo)出如下圖所示的數(shù)據(jù)后:
小A第一步可以先完成不同月份的匯總,在表中添加“月份”字段,添加公式為“=MONTH(A2)”;
第二步:再點擊表格中任意單元格–插入–透視表–新建工作表,將省份拖入數(shù)據(jù)透視表字段的【篩選器】,將月份拖入【行】中,將A、B、C、D產(chǎn)品銷售額(元)拖入【值】中;將行標簽改為月份,每個字段以求和方法計算并修改字段名稱。
第三步:選中透視表中數(shù)據(jù),調(diào)整格式為加千分位逗號,保留0位小數(shù)。
第四步:為了讓數(shù)據(jù)展現(xiàn)可視化,插入透視圖。
通過公式篩選、透視表、透視圖的使用,小A可以點擊查看不同地區(qū)、月份、產(chǎn)品的分類匯總數(shù)據(jù),可以很直觀地反映出時間維度的銷售情況、不同地區(qū)的銷售情況、很好地為產(chǎn)品選擇、地域選擇做出數(shù)據(jù)依據(jù)支撐。
數(shù)據(jù)分析功能會從數(shù)據(jù)源、數(shù)據(jù)處理、數(shù)據(jù)的可視化來實現(xiàn),而Excel的透視表對應(yīng)了數(shù)據(jù)明細(數(shù)據(jù)源),公式能夠完成較多的數(shù)據(jù)計算任務(wù)(數(shù)據(jù)處理)。
透視圖可以直觀、清晰的展示各類產(chǎn)品在不同月份、不同地區(qū)的銷售情況及總的銷售情況分析,為產(chǎn)品布局提供指導(dǎo)性參考依據(jù)(數(shù)據(jù)可視化)。
另外當小A從數(shù)據(jù)透視圖看到某個月份銷售額過高,可以直接點擊查看透視表中的數(shù)據(jù)明細是否存在錯誤,當小A想查看每個產(chǎn)品銷售額的占比,可以新建數(shù)據(jù)透視表并將透視圖切換成餅狀圖查看。
由此可見,用Excel來做數(shù)據(jù)分析不僅可以很靈活的滿足需求,而且還很實用、很方便,也不會因功能的限制導(dǎo)致對數(shù)據(jù)無法分析。
2. 方案選擇
通過以上論證,我們發(fā)現(xiàn),既要能夠解決問題又要支撐一個長期存在的功能,還要用較低成本以及最快的方式來完成,我們采用最佳的解決方案:“導(dǎo)出”。
三、導(dǎo)出功能設(shè)計
既然已經(jīng)明確最佳解決方案是“導(dǎo)出”,那接下來就從導(dǎo)出的全生命周期看看,如何設(shè)計導(dǎo)出功能?
1. 導(dǎo)出前設(shè)計
1)明確導(dǎo)出數(shù)據(jù)限制
無論當前的系統(tǒng)數(shù)據(jù)量是多少,建議都要做導(dǎo)出條數(shù)限制。
因2003版的excel 一個sheet表最多導(dǎo)出65535條數(shù)據(jù),2007版的excel是10萬4000多條。如果不設(shè)限,當用戶導(dǎo)出的數(shù)據(jù)量超過excel單個sheet的數(shù)據(jù)量時,會出現(xiàn)導(dǎo)出失敗的情況,影響用戶的正常使用,且產(chǎn)生對系統(tǒng)的不信任情緒。
那應(yīng)該限制到多少條數(shù)據(jù)?
我們先來了解一下導(dǎo)出的技術(shù)原理,當用戶點擊導(dǎo)出后,數(shù)據(jù)會被以excel的形式下載到服務(wù)器,服務(wù)器再通過網(wǎng)絡(luò)將文件發(fā)送給用戶。
在這個過程中,導(dǎo)出條數(shù)受限制的原因一個是服務(wù)器性能,另一個是用戶的電腦性能以及所使用excel版本,在實際產(chǎn)品設(shè)計時,根據(jù)實際情況,制定一個合理的數(shù)據(jù)限制即可。
回到開頭的場景中,用戶不僅要導(dǎo)出數(shù)據(jù)還要做數(shù)據(jù)透視表,假設(shè)用戶使用的03版excel,導(dǎo)出30多個字段,使用大量excel公式,最穩(wěn)妥的是限制到1萬條數(shù)據(jù)以內(nèi)。
做了一組極限測試數(shù)據(jù)供大家參考,使用一臺2核4G的服務(wù)器、1個用戶使用、導(dǎo)出條數(shù)是1048576條(導(dǎo)出最大條數(shù))、導(dǎo)出3個字段、使用2010版excel,導(dǎo)出后當使用一個sum公式時,出現(xiàn)了如下圖的錯誤,導(dǎo)致excel異常退出。
2)明確導(dǎo)出格式
數(shù)據(jù)導(dǎo)出格式有.xls和.csv,.xls是二進制的文件用excel才能打開;.csv是文本文件,用記事本就能打開。而當前用戶導(dǎo)出數(shù)據(jù)后要進行的是數(shù)據(jù)分析,故只需支持.xls導(dǎo)出。
3)明確導(dǎo)出需求
導(dǎo)出一個excel一個sheet,還是一個excel多個sheet?
考慮到用戶導(dǎo)出數(shù)據(jù)后要對訂單數(shù)據(jù)進行分析,可以與用戶明確是否需要按某一維度如客戶維度將數(shù)據(jù)拆分成多個sheet,減少用戶操作數(shù)據(jù)的時間以便能把更多精力放在數(shù)據(jù)分析。
如果用戶不需要按照某一維度拆分數(shù)據(jù),則采用導(dǎo)出一個excel一個sheet的方式。
表頭是否需要增加序號列?
當用戶導(dǎo)出訂單數(shù)據(jù)后,為了讓用戶準確操作某一行數(shù)據(jù),需要有唯一代表一行數(shù)據(jù)的標記,而在訂單導(dǎo)出前是以數(shù)據(jù)庫的主鍵來標記,對于導(dǎo)出后的訂單,則需要自動增加序號列方便用戶操作。
是否有內(nèi)容需要用顏色標注區(qū)別?
在導(dǎo)出訂單數(shù)據(jù)中,為了快速掌握銷售情況,有些數(shù)據(jù)是需要特別關(guān)注的、而有些不需要。因此,可以使用顏色標注來做區(qū)別,讓查看人員快速找到自己想要的數(shù)據(jù),如可以標注總計快速查看總銷售額。
是否需要合并單元格?
對于導(dǎo)出后進行數(shù)據(jù)分析,不建議使用合并單元格,因excel中合并單元格后僅保留左上角的值如下圖所示,這樣會使得篩選出現(xiàn)錯誤,也影響批量的公式使用導(dǎo)致透視表無法分析。
如果導(dǎo)出后只查看數(shù)據(jù),可以考慮使用合并單元格。
2. 導(dǎo)出時設(shè)計
1)是否需要導(dǎo)出維度
百度釋義:維度是事物“有聯(lián)系”的抽象概念的數(shù)量,如時間維度是以時間作為描述、表達變量的度量尺度。
導(dǎo)出維度是指的按照特定場景下,導(dǎo)出以某個字段為主導(dǎo)數(shù)據(jù)且與該字段相關(guān)的其他字段數(shù)據(jù)。
一般來說,財務(wù)和倉庫的導(dǎo)出業(yè)務(wù)場景不同,財務(wù)需要以訂單維度導(dǎo)出,倉庫需要按商品為維度導(dǎo)出,如果無需導(dǎo)出維度,則不需要過度設(shè)計。
2)設(shè)置表頭導(dǎo)出字段
由于訂單的一條記錄數(shù)據(jù)字段會很多,包括:訂單號、銷售類型、客戶名稱、產(chǎn)品名稱、數(shù)量、單價、收貨人、聯(lián)系電話、賬期、發(fā)貨時間、預(yù)約到倉時間、發(fā)貨基地名稱、發(fā)貨方式、合同折讓率、應(yīng)收款、已收款、未收款、產(chǎn)季等近30個字段。
而訂單分析時,收貨人、聯(lián)系電話、發(fā)貨時間等字段則無需導(dǎo)出。
因此選擇字段導(dǎo)出,可以讓客戶能夠更快速使用并完成分析。導(dǎo)出和查詢均要使用篩選,但呈現(xiàn)結(jié)果的方式不同,兩者的使用場景是可以借鑒的,建議可以放置篩選區(qū)。
3)是否需要支持選擇行導(dǎo)出
一般來說,導(dǎo)出數(shù)據(jù)為全量數(shù)據(jù),如果用戶通過字段選擇不出需要的數(shù)據(jù),此時要支持用戶勾選某些行數(shù)據(jù),提示用戶當前勾選數(shù)據(jù)明細及數(shù)據(jù)條數(shù)。
4)其他處理
為了讓客戶清晰的明白訂單是如何導(dǎo)出的,需要在導(dǎo)出時給予導(dǎo)出規(guī)則、導(dǎo)出圖片、附件形式說明文字提示。
- 是否需要導(dǎo)出規(guī)則說明;
- 導(dǎo)出圖片、附件只能以鏈接形式導(dǎo)出說明;
- 導(dǎo)出數(shù)據(jù)中是否存在日期和時間,需針對時間戳提前處理。
5)根據(jù)導(dǎo)出數(shù)據(jù)量,明確數(shù)據(jù)處理方式
從技術(shù)的角度說,針對較大數(shù)據(jù)量的導(dǎo)出場景,可以采用異步的處理方式,降低客戶的焦急心理。
所謂異步,就是用戶點擊導(dǎo)出按鈕后,后端接收請求并執(zhí)行讀取任務(wù),用戶可以不用停留在原處等待,離開當前頁面去處理其它工作任務(wù),之后再打開任務(wù)頁面查看導(dǎo)出結(jié)果。
如果有數(shù)據(jù)可以預(yù)先計算,后端可以直接預(yù)先計算,同時避免了因采用同步的處理方式導(dǎo)致長時間等待的結(jié)果,客戶體驗會更好,工作效率也會更高。
- 是否需要異步處理;
- 是否需要預(yù)先計算。
6)是否需要任務(wù)頁面
如果用戶點擊“導(dǎo)出”按鈕后,10秒鐘內(nèi)不能完成文件打開,會讓用戶產(chǎn)生焦慮心理。為了讓用戶使用體驗更佳,需要有一個固定頁面即任務(wù)頁面來承載導(dǎo)出任務(wù)列表。
四、總結(jié)思考
1. 從導(dǎo)出功能看功能設(shè)計流程
功能,是為解決問題而生,而功能的起源是需求,需求是從場景中找到問題。
由此可見,功能設(shè)計流程一定會包含場景選定、問題分析并找準需求、解決方案分析、選定功能、功能設(shè)計這5個階段。
做功能設(shè)計時,時刻問自己三個為什么:為什么這是一個問題(問題具備危害性)?為什么要解決這個問題(被解決的價值)?為什么我選定的功能可以解決這個問題(功能的價值)?
2. 導(dǎo)出能夠解決的問題
導(dǎo)出不僅可以解決文中的“需要更全面的數(shù)據(jù)分析”的問題,還可以解決“數(shù)據(jù)離線使用”的問題,導(dǎo)出后,數(shù)據(jù)以本地文件的形式存在,可離線使用。
另外導(dǎo)出還能解決“數(shù)據(jù)交付系統(tǒng)外部人員”的問題,導(dǎo)出后,數(shù)據(jù)以獨立文件的形式存在,可以復(fù)制,傳遞。
3. 可優(yōu)化方向
- 當系統(tǒng)頁面越來越多,導(dǎo)出也在多個頁面出現(xiàn)時,可考慮使用一個配置導(dǎo)出頁面統(tǒng)一管理系統(tǒng)中所有的導(dǎo)出;
- 當用戶使用導(dǎo)出功能后不停留在原處等待時,出現(xiàn)導(dǎo)出異常,采用短信或郵件通知用戶,讓用戶及時知道導(dǎo)出進度不至于耽誤工作。
本文由 @努力的小妖 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Pexels,基于 CC0 協(xié)議
數(shù)據(jù)分析的話CSV 格式更好
感覺懂了,又好像沒懂
請問:場景是人員信息的導(dǎo)入導(dǎo)出。導(dǎo)入時是分人員基本信息(姓名/性別等)、和人員身份證圖片信息兩部分導(dǎo)入的。那么導(dǎo)出的時候是否也要分維度(基本信息+身份證圖片信息)分開導(dǎo)出呢?
學(xué)習(xí)了
寫的很棒,感謝
相當全面,膜拜
想問一下導(dǎo)出功能與新增前端頁面的技術(shù)復(fù)雜性哪個更高一點呢
學(xué)習(xí)了,感謝。
導(dǎo)出任務(wù)單獨做了界面,入口放哪里呀