Board logo

標題: 找出指定人數 [打印本頁]

作者: yan870510    時間: 2011-1-29 10:30     標題: 找出指定人數

我想找出指定職級, 但修讀過一種或另一種課程的人有多少人數 ? 應如何呢 ?thx !!!!
附上附件 !!!
[attach]4573[/attach]
作者: trainee    時間: 2011-1-29 11:10

本帖最後由 trainee 於 2011-1-29 11:15 編輯

試吓將佢哋加埋!

SUMPRODUCT((A2:A52="一級文員")*(C2:C52="中文課程")) + SUMPRODUCT((A2:A52="一級文員")*(C2:C52="英文課程"))
作者: yan870510    時間: 2011-1-29 22:30

但係加埋的話只能計出修讀該兩個課程的總數, 不能計出人數 ( 因為有一些人是同時讀了中及英文課程), 如何能計出人數呢 ?
作者: handmuch    時間: 2011-1-30 00:24

回復 3# yan870510


    也就是說"名字不能重複",那麼用篩選或進階篩選完後,2007有一個"移除重複"--移除重複名字後,再算個數,這樣應該也行得通吧。
作者: Hsieh    時間: 2011-1-30 10:05

回復 3# yan870510

進階篩選出全部名單
用陣列公試算出不重複數量
    [attach]4593[/attach]
作者: trainee    時間: 2011-1-30 10:11

會否考慮改變編輯模式,若不縑麻煩,請參閱附圖!

[attach]4594[/attach][attach]4594[/attach]
[attach]4594[/attach]
作者: Andy2483    時間: 2023-5-12 13:54

本帖最後由 Andy2483 於 2023-5-12 14:20 編輯

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列與字典,學習方案如下,請各位前輩指教

執行前:
[attach]36348[/attach]

執行結果:
[attach]36349[/attach]


Option Explicit
Sub TEST()
Dim Brr, Crr, Y, N&, i&, j&
'↑宣告變數
Set Y = CreateObject("Scripting.Dictionary")
'↑令Y變數是 字典
Brr = Range([C1], Cells(Rows.Count, 1).End(3))
'↑令Brr變數是 二維陣列,以A~C欄儲存格資料帶入陣列裡
ReDim Crr(1 To UBound(Brr), 1 To 3)
'↑宣告Crr是二維空陣列,縱向範圍同Brr陣列,橫向從1~3
For i = 1 To UBound(Brr)
'↑設順迴圈
   If i = 1 Then N = 1: For j = 1 To 3: Crr(N, j) = Brr(i, j): Next
   '↑處理標題列
   If Brr(i, 1) = "一級文員" And InStr("/中文課程/英文課程/", "/" & Brr(i, 3) & "/") Then
   '↑如果符合條件
      If Y(Brr(i, 2) & "") = "" Then
      '↑如果姓名不重複
         N = N + 1
         For j = 1 To 3: Crr(N, j) = Brr(i, j): Next
         '↑符合條件又不重複的資料寫入Crr陣列裡
         Y(Brr(i, 2) & "") = 1
         '↑令此字典裡此key的item值是 1(讓後迴圈濾重複)
      End If
   End If
Next
[E12].Resize(N, 3) = Crr
'↑令Crr陣列值從[E12]寫入儲存格裡
Set Y = Nothing: Erase Brr, Crr
'↑令釋放變數
End Sub
作者: hcm19522    時間: 2023-5-12 14:22

=SUM(COUNTIFS(A:A,"一級文員",C:C,{"英文課程","中文課程"}))




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)