[[20080708153558]] 『条件にあった件数を』(りん) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件にあった件数を』(りん)

 シート1
          A

 1   2008006280
 2   2008006281
 3   2008007080
 4   2008007090
 5   2008007100
 6   2008007101
 7   2008007110

 シート2
           A

 1   2008006290
 2   2008006300
 3   2008006301
 4   2008007090
 5   2008007100
 6   2008007101
 7   2008007110
 8  2008008010

 A列に2008006280のようにデータの整理番号が
 並んでるシートが100枚くらいあります。

 シート1
 2008006 までを→1件と数えて
 2008007 →1件 シート1は計2件  
 シート2
 2008006 →1件
 2008007 →1件
 2008008 →1件 シート2は計3件
 などのように、シートごとに何件あるかを数えたいのですが、
 どにようにすればよいでしょうか?
 どなたか助けてください!(><)

 >A列に2008006280のようにデータの整理番号
 10桁である事は決まっているのですか?
 >何件あるかを数えたいのですが
 件数を数えた後はどうします?
 数式?VBA?どちらでもいい?(数式は苦手ですけどね)
 (梅雨ですね〜)

 >10桁である事は決まっているのですか?
 10桁である事は決まっています。件数が多いのでできればVBAが良いですが・・・(りん)


 何件あるかだけ数えたいだけなのですか?
 重複はないのですか?
 ただ入力されているセルを数えるだけなら
 使用していないセルに
 =COUNT(A:A)
 =COUNTA(A:A)
 等でもいいのでしょうが・・・。
 (肌)


 左から7桁目だけが対象ですか?
 それとも2008012とか2009001とかもあり?(kuro)


 例えば、B1 =ROUNDDOWN(A1/1000,0)
 で下へフィルコピー。
 C1 =COUNT(INDEX(0/((MATCH(B1:B10,B1:B10,0)=ROW(1:10))),))
 とか?
 下3桁切り捨てが条件ですがね ^^;
 (ぽ)

 まず、下記の過去ログを参考にして全シート名を抽出します。
 
[[20040819143128]]『目次を作りたいのですが』(辛汗)

 抽出されたら、そのB1セルに、
 =COUNTIF(INDIRECT(A1&"!A:A"),"<2008007000")  と入力し、
 下へフィルコピー。
 
(純丸)(o^-')b ※はずしてるかな、、

 > シートごとに何件あるかを数えたいのですが 
 何種類あるかを 数えるだけですか?
  (kanabun)

 Sub Try1()
  Dim ws As Worksheet, r As Range
  Dim v, Ans As String
  Dim i As Long

  ReDim Res(1 To ActiveWorkbook.Worksheets.Count, 1 To 2)
  With CreateObject("Scripting.Dictionary")
    For Each ws In ActiveWorkbook.Worksheets
        Set r = ws.Range("A1", ws.Cells(ws.Rows.Count, 1).End(xlUp))
        v = Application.Transpose(Application.Replace(r, 8, 20, ""))
        For i = 1 To UBound(v)
            .Item(v(i)) = Empty
        Next
        Ans = Ans & ws.Name & vbTab & .Count & vbCr
        .RemoveAll
    Next
  End With
  MsgBox Ans
 End Sub


 >件数が多いのでできればVBAが良いですが・・・
 その件数(並んでるシートが100枚くらい分)を、どこかのセルに表示するのですか?
 例えば、各シートのセルB1に・・とか?
 (梅雨ですね〜)

 >件数が多いのでできればVBAが良いですが・・・
 そーだったのねん。
 気づいてませんでした  _/ ̄|○  il||li
 (ぽ)


 kanabunさまへ

 > ReDim Res(1 To ActiveWorkbook.Worksheets.Count, 1 To 2)
 ここがよく分からなかったのですが、コメントにしても結果は同じでしたし。。。
 でも横からお勉強になりました。
 (梅雨ですね〜)

 >> ReDim Res(1 To ActiveWorkbook.Worksheets.Count, 1 To 2)
 > ここがよく分からなかったのですが、コメントにしても結果は同じでしたし。。。

 失礼しました。
  結果をどこか シートに書き出そうか? って考えの時に、書いた一行で、
  いまは メッセージボックスに表示しているだけなので、全然使ってませんです。
  消し忘れです、ごめんなさい m(__)m
   (kanabun)

 >消し忘れです、ごめんなさい m(__)m
 とんでもないです。昨年は私の方もたくさん勉強させて頂いておりますので。
 何かをしようと?と、思って聞いてみたのです。
 ご返事ありがとうございます。
 (梅雨ですね〜)

 (梅雨ですね〜)さま、(kanabun)さま、(純丸)さま、(肌)さま、ご返答
 ありがとうございます。いろいろ勉強になりました。

 (kanabun)さまのコードでばっちりでした。ありがとうございました。(りん)


 何度もすみません。
 2008007〜の場合はうまくいったのですが、1980とかのを試そうとしたら
 件数をちゃんとした件数を出してくれません。
 kanabunさまのマクロを変更しようとしたのですが・・・難しく(汗
 今後の勉強のために解説を加えていただけないでしょうか?
 お手数おかけいたしますがよろしくお願いいたします。(りん)

 > kanabunさまのマクロを変更しようとしたのですが・・・難しく(汗
 > 今後の勉強のために解説を加えていただけないでしょうか?

  こんばんは。

        '↓A列のすべてのデータの 先頭から8桁目以降を削除します
 >       v = Application.Transpose(Application.Replace(r, 8, 20, ""))
         '配列v に
          2008006
          2008006
          2008006
          2008007
          2008007
          2008007
          2008007
         2008008
          :
          のような値が格納されます。

 >       For i = 1 To UBound(v)
 >           .Item(v(i)) = Empty
 >       Next
        'ここで、Dictionaryオブジェクトのキーに
         上のデータを順にセットしています。
         Dictionary のキーは重複しないので、
            2008006
            2008006
            2008006
         と3回 同じデータをキーに登録しても、
         Dictionaryのなかでは "2008006" というキーは
         ひとつしかありません。

 >    Ans = Ans & ws.Name & vbTab & .Count & vbCr
       'あるシートのデータを全部入れ終わったら、
        dictionaryの.Countプロパティに キーの数が入っています。
        これが 求める件数 です。 

 > 1980とかのを試そうとしたら
 > 件数をちゃんとした件数を出してくれません。
    1980004123
    1980005123
  とかのデータでしたら、1980004 と 1980005 とで2件と
  なりませんか?
                    (kanabun)


 ちょっと疑問が湧いてきました。
 このようなデータの整理番号は文字列にすれば処理しやすいと思いますが
 文字列では不都合があるのですか。

 (wisemac21)

 kanabunさま、ご返答ありがとうございます。&&すごく良く分かる解説もありがとうございます。
 元データに何か問題があるのでしょうね・・・。
 件数が少なめに表示されたりしたことがありました。
 再度調べてみます。
 wisemac21さま、特に文字列にしても問題ありません。
 というか、複合データなので、もしかすると文字列のところもあるかもしれません。(りん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.