|
今天介紹在Excel中制作?;鶊D的最簡單方法:
之前我們講過在Excel中如何做?;鶊D:
效果雖然比上面的?;鶊D還差一些,不過也還不錯。主要缺點就是太復(fù)雜了!好多步驟,寫了好幾個自定義函數(shù)、雖說做了一個模板,可以直接套用,但是如果想修改一下格式,比如改成曲線的連接,就太麻煩了! 我們使用的原始數(shù)據(jù)如下:
當(dāng)然要使用我們上次介紹的這個良心網(wǎng)站了(見這里),
研究一下?;鶊D的數(shù)據(jù)組織,很容易就發(fā)現(xiàn)規(guī)律,不過就是指明: from A, to B, flow x 其中A和B是標(biāo)簽,x是數(shù)值。 所以,問題的關(guān)鍵就是從源數(shù)據(jù)區(qū)域自動生成這個格式的數(shù)據(jù)集。 這個問題其實非常簡單,我們只要按照下面的步驟就可以了。 第一步,根據(jù)原始數(shù)據(jù)生成下面的表格:
只要使用MAKEARRAY函數(shù)循環(huán)源數(shù)據(jù)區(qū)域就可以得到這個結(jié)果。 第二步,將上面的結(jié)果合并為一個字符串,
這一步更簡單,只要使用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)))下面只要引用這個函數(shù)就可以生成?;鶊D了:
|
|
|