今天介紹在Excel中制作?;鶊D的最簡單方法: 之前我們講過在Excel中如何做?;鶊D: 效果雖然比上面的桑基圖還差一些,不過也還不錯(cuò)。主要缺點(diǎn)就是太復(fù)雜了!好多步驟,寫了好幾個(gè)自定義函數(shù)、雖說做了一個(gè)模板,可以直接套用,但是如果想修改一下格式,比如改成曲線的連接,就太麻煩了! 我們使用的原始數(shù)據(jù)如下: 當(dāng)然要使用我們上次介紹的這個(gè)良心網(wǎng)站了(見這里), 研究一下桑基圖的數(shù)據(jù)組織,很容易就發(fā)現(xiàn)規(guī)律,不過就是指明: from A, to B, flow x 其中A和B是標(biāo)簽,x是數(shù)值。 所以,問題的關(guān)鍵就是從源數(shù)據(jù)區(qū)域自動(dòng)生成這個(gè)格式的數(shù)據(jù)集。 這個(gè)問題其實(shí)非常簡單,我們只要按照下面的步驟就可以了。 第一步,根據(jù)原始數(shù)據(jù)生成下面的表格: 只要使用MAKEARRAY函數(shù)循環(huán)源數(shù)據(jù)區(qū)域就可以得到這個(gè)結(jié)果。 第二步,將上面的結(jié)果合并為一個(gè)字符串, 這一步更簡單,只要使用TEXTJOIN函數(shù)即可。 根據(jù)上面的分析,我們創(chuàng)建了自定義函數(shù): //SANKEYSANKEY = LAMBDA(srcdata, LET( from, DROP(TAKE(srcdata,,1),1), to, DROP(TAKE(srcdata,1),,1), datarng, DROP(srcdata,1,1), chartdata, MAKEARRAY(ROWS(datarng), COLUMNS(datarng), LAMBDA(r,c,LET( alpha, INDEX(from, r, 1), omega, INDEX(to, 1, c), flow, INDEX(datarng, r, c), "{ from: '" & alpha & "', to: '" & omega & "', flow: " & flow & " }" )) ), IMAGE("https:///chart?v=3&c={type: 'sankey', data: {datasets:[{data:[" & TEXTJOIN(",",,chartdata) & ",]},],},}",,1))) 下面只要引用這個(gè)函數(shù)就可以生成桑基圖了: |
|