高效分析數(shù)據(jù)從設(shè)計(jì)數(shù)據(jù)源開(kāi)始

引言

工欲善其事,必先利其器。在對(duì)數(shù)據(jù)進(jìn)行分析的過(guò)程中,各種各樣格式的數(shù)據(jù)源往往會(huì)對(duì)數(shù)據(jù)分析工作造成極大的困擾,后續(xù)數(shù)據(jù)分析工具的使用也會(huì)變得異常的復(fù)雜,因此,如何得到一個(gè)便于分析、處理的數(shù)據(jù)源,對(duì)于提高數(shù)據(jù)分析的效率,具有十分重要的意義,在數(shù)據(jù)收集之前,如果能夠提前按照需要,設(shè)計(jì)好數(shù)據(jù)源進(jìn)行采集,也能夠?qū)罄m(xù)的數(shù)據(jù)清洗和整理帶來(lái)極大的便利。

好的數(shù)據(jù)源長(zhǎng)什么樣

這是某醫(yī)院科室考核的成績(jī)(虛構(gòu)),從表中我們可以看出各個(gè)科室各項(xiàng)指標(biāo)的得分情況,但是,利用這個(gè)表格,我們想要進(jìn)一步分析科室之間成績(jī)差異,指標(biāo)之間成績(jī)差異就變得比較困難,分析受到了較大的制約,因此,從數(shù)據(jù)源的角度而言,這個(gè)表不是一個(gè)好的數(shù)據(jù)源。


壞數(shù)據(jù)源

然而如果我們拿到的數(shù)據(jù)源是下面這個(gè)樣子,猛一看上去,這個(gè)數(shù)據(jù)還不如剛才的表格,從中幾乎無(wú)法得到任何有效的信息,但是,這種形式的數(shù)據(jù),幾乎可以被所以統(tǒng)計(jì)分析軟件直接使用,借助 Excel 的數(shù)據(jù)透視表功能,可以從各個(gè)角度對(duì)數(shù)據(jù)進(jìn)行分析,所以,從數(shù)據(jù)源角度來(lái)說(shuō),這才是一個(gè)好的數(shù)據(jù)源。

好數(shù)據(jù)源

一維數(shù)據(jù)和二維數(shù)據(jù)

細(xì)心的讀者可能發(fā)現(xiàn)了,兩個(gè)表格的主要差異,就在于需要分析的數(shù)據(jù)的排列方式,在第一個(gè)數(shù)據(jù)源中,數(shù)據(jù)是二維的,相當(dāng)于已經(jīng)把數(shù)據(jù)平鋪在表格上,再想對(duì)數(shù)據(jù)進(jìn)行變形、分析就會(huì)比較麻煩,而第二個(gè)數(shù)據(jù)源中,數(shù)據(jù)是一維的,我們可以隨意對(duì)一維的數(shù)據(jù)進(jìn)行展開(kāi)、塑造,得到我們需要的分析表。
因此,在數(shù)據(jù)收集的過(guò)程中,要盡量保持?jǐn)?shù)據(jù)的原貌,使數(shù)據(jù)以一維的方式存儲(chǔ),這樣可以對(duì)以后的分析帶來(lái)極大的便利。但是,如果拿到的已經(jīng)是二維數(shù)據(jù)該怎么辦呢?接下來(lái)來(lái)介紹一下通過(guò)“逆透視”來(lái)把二維數(shù)據(jù)還原為一維數(shù)據(jù)的幾種方法。

Excel 逆透視的三種方法

借助數(shù)據(jù)透視表功能

  1. 在 Excel 表格中依次按 Alt d p 鍵,進(jìn)入下圖窗口(數(shù)據(jù)透視表和數(shù)據(jù)透視圖向?qū)В?/p>

    多重合并計(jì)算數(shù)據(jù)區(qū)域并下一步
  2. 選擇“多重合并計(jì)算取數(shù)據(jù)區(qū)域”并點(diǎn)擊“下一步”按鈕;


    創(chuàng)建單頁(yè)字段并下一步
  3. 選擇“創(chuàng)建單頁(yè)字段”,并“下一步”;


    選定區(qū)域并添加
  4. 在“選定區(qū)域”中選擇需要進(jìn)行逆透視的數(shù)據(jù)區(qū)域,并添加。需要注意的一點(diǎn)是,通過(guò)這種方法進(jìn)行逆透視,只能包含一個(gè)標(biāo)題行和一個(gè)標(biāo)題列,如果有多個(gè)標(biāo)題行(列),需要保留不重復(fù)的一行(列)作為逆透視的標(biāo)題列,在逆透視結(jié)束后,再通過(guò)其他函數(shù)進(jìn)行查找匹配。執(zhí)行“完成”

  5. 在上一步之后,我們將得到一個(gè)數(shù)據(jù)透視表,雙擊透視表右下角的行列總計(jì)值,就可以得到逆透視的數(shù)據(jù),再借助 VLOOKUP 和 HLOOKUP 函數(shù),補(bǔ)全數(shù)據(jù)源的必要信息。

雙擊行列總計(jì)

借助查詢功能(僅 Excel 2016 版本)

  1. 在“數(shù)據(jù)”選項(xiàng)卡下,選擇“從表格”新建查詢;


    數(shù)據(jù) - 從表格
  2. 在創(chuàng)建表的窗口中,選擇數(shù)據(jù)來(lái)源;


    選擇數(shù)據(jù)來(lái)源
  3. 選擇需要進(jìn)行逆透視的列,按住 Ctrl 選取多個(gè),右擊選擇內(nèi)容,選擇“逆透視列”選項(xiàng),就可以在查詢中得到逆透視后的數(shù)據(jù),點(diǎn)擊左上角的“關(guān)閉并上載按鈕,即可將逆透視后的數(shù)據(jù)傳回到 Excel 當(dāng)中。需要說(shuō)明的是,這種方法能夠支持多個(gè)標(biāo)題列,但是不能包含多個(gè)標(biāo)題行,因此也需要對(duì)標(biāo)題行進(jìn)行提前處理。


    逆透視

借助 VBA

利用 VBA 對(duì)數(shù)據(jù)進(jìn)行逆透視是最靈活的方式,可以根據(jù)數(shù)據(jù)源的差異而調(diào)整程序,這里提供一種解決方案供有能力的用戶進(jìn)行嘗試。

Option Explicit
Sub 逆透視()
Dim i, j As Integer
' i, j 為值矩陣
Dim line As Long
' line 為逆透視之后的行
Application.ScreenUpdating = False
' 關(guān)閉屏幕更新,提高運(yùn)行效率
line = 1
For i = 2 To 20
' 按行循環(huán)
    For j = 2 To 20
    ' 按列循環(huán)
        If Sheets(1).Cells(i, j) <> "" Then
        ' 逆透視忽略空值單元格
            Sheets(2).Cells(line, 1) = Sheets(1).Cells(i, 1)
            ' 讀取列標(biāo)題
            Sheets(2).Cells(line, 2) = Sheets(1).Cells(1, j)
            ' 讀取行標(biāo)題
            Sheets(2).Cells(line, 3) = Sheets(1).Cells(i, j)
            ' 讀取值
            line = line + 1
        End If
    Next
Next
Application.ScreenUpdating = True
' 一定記住要打開(kāi)屏幕更新,否則結(jié)果無(wú)法顯示
End Sub

案例

點(diǎn)擊案例測(cè)試文中內(nèi)容

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容