Excel表格如何多條件不重複計數

前幾天工作中有一個小夥伴問到了一個問題,是關於多條件不重複計數的問題,小必給大家分享三種方法,依次是透視表、公式函式、Excel Power Query以及SQL的方法。

給大家上一下資料來源,如下圖所示:

對每個年月對應的編碼進行不重複計數。結果如下圖所示:

方法1:資料透視表

Step-01:選擇資料來源區域A1:C27,單擊【插入】-【資料透視表】,在彈出的對話方塊中選擇存放的位置,然後勾選【將此資料新增到資料模型】,最後單擊【確定】。如下圖所示:

Step-02:在透視表欄位列表佈局中,將“年”與“月”拖放至【行欄位】,將“編碼”拖放至【值】,然後右鍵單擊【行】中的“編碼”欄位,然後在彈出的對話方塊中選擇【非重複計數】。如下圖所示:

Step-03:設定透視表佈局。最後結果如下圖所示:

方法2:公式函式法

在G2單元格中輸入公式:

=SUMPRODUCT(((E2=$A$2:$A$27)*(F2=$B$2:$B$27))/COUNTIFS($A$2:$A$27,$A$2:$A$27,$B$2:$B$27,$B$2:$B$27,$C$2:$C$27,$C$2:$C$27)),然後按Enter鍵完成下拉。

對於上面的公式,有興趣的小夥伴可以按F9或者公式求值一步步去拆解其原理,這裡限於篇幅,再做過多的解釋。

方法3:Excel Power Query

Step-01:選擇資料區域,單擊【資料】-【從表格/區域】,在彈出的對話方塊中選擇【確定】。如下圖所示:

Step-02:在Power Qeury編輯器介面中先刪除步驟【更改的型別】,然後同時選擇"年"與“月”兩列,然後單擊【分組依據】,在彈出的對話方塊中輸入【新列名】,【操作】為【非重複計數】,如下圖所示:

或者直接在公式編輯欄中輸入公式:

= Table.Group(源, {"年", "月"},

{

{

"編碼不重複計數",

each Table.RowCount( Table.Distinct(_))

}

}

)

Step-03:然後資料載入至工作表中,如下操作:

方法4:在Excel中使用SQL

Step-01:選擇【資料】-【現有連結】,在彈出的對話方塊中選擇【瀏覽更多】,找到當前工作簿的位置,單擊【開啟】,選擇要操作的工作表。如下圖所示:

Step-02:在彈出的對話方塊中選擇【屬性】,再次在開啟的對話方塊中選擇【定義】,如下圖所示:

Step-03:在彈出的對話方塊中的【命令文字】文字框中輸入SQL程式碼,如下圖所示:

select distinct 年,月,count(*) as 不重複編碼計數from (select distinct 年,月,編碼from[Sheet1$]) as agroup by 年,月

Step-04:最後單擊【確定】後即可。結果如下圖所示: