[[20160420135030]] 『異なる行数で結合している隣のデーターの特定文字』(さんま) ページの最後に飛ぶ

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

 

『異なる行数で結合している隣のデーターの特定文字列の個数をだすには』(さんま)

エクセルで4列目にデーターが沢山入ってます。
5列目はそれぞれ異なった行数で結合されています。
5列目で結合されている行数の4列目に入っているデーターから特定の文字列の入っているセルの個数を5列目のセルに出したいです。

同じ行数で結合されていれば数式をコピーして個数を出せるのですが、異なるのでできません。

4列目にはデーターが1000以上入っています。

VBAを教えて下さい。

宜しくお願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 こんなことでしょうか?

 Sub Test()
    Dim c As Range

    With Range("D1", Range("D" & Rows.Count).End(xlUp)).Offset(, 1)
        .Value = Empty
        For Each c In .Cells
            If c.MergeCells And c.Address = c.MergeArea(1).Address Then
                c.Value = WorksheetFunction.CountIf(c.Offset(, -1).Resize(c.MergeArea.Count), "特定の文字")
            End If
        Next
    End With

 End Sub

(β) 2016/04/20(水) 14:37


被りましたが、現状は5列目はセル結合しているだけで、すべて空欄ということですかね?

 Sub test()
    Dim R As Range
    Dim i As Long

    Columns("E:E").ClearContents

    For Each R In Range("E1", Cells(Rows.Count, "D").End(xlUp).Offset(0, 1))
        With R
            If .Row = .MergeArea.Row Then
                For i = 0 To .MergeArea.Count - 1
                    If InStr(.MergeArea.Offset(0, -1).Offset(i, 0).Value, "○") Then
                        .Value = .Value + 1
                    End If
                Next i
            End If
        End With
    Next R
 End Sub

(βさん案のほうが、カウントも一発で処理してますね)
(???) 2016/04/20(水) 15:04


β様、???様、コメント有難うございます。

ただ今試したところ、どちらのvbaもやりたいことが一瞬でできました。

大変助かりました。

どうもありがとうございました。
(さんま) 2016/04/21(木) 17:08


コメント返信:

[ 一覧(最新更新順) ]


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