欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

同一數據對應不同行

劉姿婷2年前22瀏覽0評論

同一數據對應不同行?

要實現這個【數據轉置】一般都有好多種方法。

先看下面的數據源和要求。

方法一:萬金油公式index+small+if,一對多查找。

公式如下:數組公式,輸入公式后需同時按CTRL+SHIFT+ENTER三鍵才能夠正常顯示結果。

=IFERROR(INDEX($B$1:$B$8,SMALL(IF($A$1:$A$8=$D2,ROW($1:$8),9^9),COLUMN(A1))),"")

此公式的不好的地方:函數公式本來就效率相對低,數組公式效率更低。所以要視乎數據量和實際情況來使用。

方法二:函數輔助列(好處是效率相對方法一較高,也較靈活)

輔助列公式如下:

=A2&"金額"&COUNTIF($A$2:A2,A2)

使用輔助列就可以簡化查詢的公式,提升效率。

查詢公式如下:

=IFERROR(INDEX($B$1:$B$8,MATCH($E2&F$1,$C$1:$C$8,0)),"")

方法三:輔助列+透視表方法

插入透視表,輔助列公式略有更改,如下

="金額"&COUNTIF($A$2:A2,A2)

拖拉字段,輔助列拖至列,項目拖至行,金額拖至值。

這樣就完成了數據的轉置。

普通透視表的這個方法也有一個辦不到的地方。

當金額為文本的時候,就無法處理。如下圖。

方法四:PowerQuery方法

以金額為文本為例子,標題字段就不改了,畢竟方法一樣。

將數據上傳到powerquery編輯器,數據--從表格

選中輔助列,轉換--透視列

設置如下:

結果:

假如沒有輔助列,數據是這樣的。可以如下面這樣處理

同樣將數據上傳到powerquery編輯器

轉換--分組--統計,設置如下:

點擊確定(因為是對文本求和,所以必然是返回錯誤的)

此時,函數公式為:

= Table.Group(更改的類型, {"項目"}, {{"計數", each List.Sum([金額]), type text}})

將函數公式改為:

= Table.Group(更改的類型, {"項目"}, {{"計數", each Text.Combine([金額],","), type text}})

使用Text.Combine函數合并同類項,結果為:

然后執行拆分列操作,按逗號分列成--列

結果:

powerquery的方法相對來說是較好的。

方法五:VBA方法。

VBA方法無往而不利,數組配合字典轉置一下就OK,但這里就不再提供代碼了。

以上方法僅供參考。

歡迎關注套路Excel

php query轉數組,同一數據對應不同行