Board logo

標題: [發問] 請問先進有沒有可以用巨集或VB解決這問題? [打印本頁]

作者: spensers    時間: 2014-3-25 17:07     標題: 請問先進有沒有可以用巨集或VB解決這問題?

文具名稱        數量
書夾        10
書夾        20
釘書機        2
釘書機        4
書套        30
書夾        30
釘書機        9
書套        50
       
       
出貨總項目       
3
作者: linyancheng    時間: 2014-3-25 19:54

不用VBA,用樞紐分析表即可解決!
作者: yen956    時間: 2014-3-26 13:19

回復 1# spensers
初學公式, 試試看:
假定你的資料在 A1:B9,
C2 公式
=IF(COUNTIF(A2:A9,A2)>1,0,1) 或 =IF(COUNTIF(A2:A9,A2)>1,"",1)
向下複製
C10 公式
=SUM(C2:C9)
應該有更簡捷的公式, 就請諸位大大指教啦
作者: Hsieh    時間: 2014-3-26 14:02

回復 1# spensers

=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9))
[attach]17873[/attach]
作者: yen956    時間: 2014-3-26 16:14

回復 1# spensers
試試看:
  1. '有關 Dictionary 物件的說明請參閱
  2. 'Dictionary物件的認識與應用
  3. 'http://gb.twbts.com/index.php?topic=510.0
  4. '我也是第一次使用 Dictionary, 還在摸索中
  5. '下列 VBA 應該合乎你的需求

  6. '假定你的資料在 A:A
  7. Private Sub CommandButton1_Click()
  8.     Dim RngA, Cel As Range
  9.     Set d = CreateObject("Scripting.Dictionary")
  10.     Set RngA = [A2].Resize([A2].End(xlDown).Row - 1, 1)
  11.    
  12.     '對於 RngA 的每一個儲格來說
  13.     For Each Cel In RngA
  14.         
  15.         '若 Cel 的值不在 Dictionary 裡面
  16.         If Not d.exists(Cel.Value) Then
  17.         
  18.            '將 Cel 的值存入 Dictionary
  19.            d.Add Cel.Value, Cel.Value
  20.         End If
  21.     Next
  22.    
  23.     '出貨總項目 = d.Count
  24.     [A13] = d.Count
  25. End Sub
複製代碼

作者: yen956    時間: 2014-3-26 16:34

回復 4# Hsieh
謝謝版大的指點,
原來:
=COUNTIF(A2:A9,A2:A9)
可求出 重覆 的數量,而
=1/COUNTIF(A2:A9,A2:A9)
可算出某項的 1/n, 全部的 1/n 加起又等於 1,
所以總和就算出來了, 真神!! 謝謝!!
作者: sunnyso    時間: 2014-3-27 07:58

=SUM(IF(FREQUENCY(MATCH(B2:B10,B2:B10,0),MATCH(B2:B10,B2:B10,0))>0,1))
作者: spensers    時間: 2014-3-29 09:40

感謝,先進們的回覆,工作忙,現在才答謝,抱歉。




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