dポイントプレゼントキャンペーン実施中!

こんにちは。Excelでのカウントアップについての質問です。
入力規則でドロップダウンリストを作成しておりそちらで選択した項目の選択回数を別Sheetのセルにカウントアップさせて行きたいのですが、どなたか良い方法がございましたら御教授願います。
リストがあるセルはSheet1のC16で毎回リストの項目を選択して行きます。
そしてリストは名前の定義で作成しておりSheet2のD4:D23にそれぞれのリストで選択する項目が有ります。
Sheet2!E4:E23のセルにSheet1!C16で選択したリストの項目をどの項目を何回選択したかカウントして行きたいと考えております。
リストの内容を引っ張って来るのはCOUNTIF関数で出来たのですが、当然違う項目を選択するとカウントが0に戻ってしまいます。
≪現状≫
項目Aを選択⇒Aのカウントが1になる
項目Bを選択⇒Bのカウントが1になる代わりにAのカウントが0になる
≪理想の形≫
項目Aを選択⇒Aのカウントが1になる
項目Bを選択⇒Bのカウントが1になりAのカウントも1のまま
以上、宜しくお願い申し上げます。

A 回答 (1件)

関数では無理


マクロでよいなら

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$16" Then Exit Sub
Dim rng As Range
With Worksheets("sheet2")
Set rng = .Range("d3:d23").Find(What:=Worksheets("sheet1").Range("c16").Value, After:=.Range("d3"), MatchCase:=False).Offset(0, 1)
a.Value = a.Value + 1
End With
End Sub

シートのSheet1タブを右クリック
上のコードをコピペ

以上、参考まで

この回答への補足

ご連絡が大変遅くなり申し訳ございません。
ご回答、有難うございました。
関数では無理との事ですので上記のマクロにて試してみましたが
a.Value = a.Value + 1の部分で下記のエラーが出てしまいます。
実行時エラー'424':オブジェクトが必要です。
また今回の質問内容についてマクロを使用するという事になりますと全体的に見直しが必要と考えられますので補足させて頂きます。
先ず、根本的な部分からお話させて頂くとシフト管理表を作っております。その中で当日の出勤者の氏名が先ずSheet1のB16以下のセルに入って来ます。(最大50名程度)
その為毎日氏名のセルに入る人の名前は入れ替わり、空欄のセルが間に入る事はありません。
またその一つ右側のC16以下のセルに人数分のリストを出せる様にしておりB列のセルに挙がった氏名の内容に応じてリストの内容が変わる形となっております。
そしてSheet2にリストの元となる情報を入れておりD3に氏名D4以下にリストの内容という形にしております。
そして2人目のDataはG3に氏名、G4以下にリスト内容という形で各自2列分のセルを空けて横方向に展開して作成しております。
その為、実質はSheet2の3行目の氏名と4行目以下の内容がSheet1のB列とC列で両方の条件が合致する場合にSheet2の4行目以下の内容の右側に選択回数をカウントアップして行く形を理想としております。
判り辛い説明ですが、これら全てをマクロで対応可能であれば御教授願えませんでしょうか?
以上、長文になりましたが宜しくお願い申し上げます。

補足日時:2009/02/11 10:54
    • good
    • 0
この回答へのお礼

この度はご回答、有難うございました。
問題は解決出来ていないのですが、今回の質問は一旦締め切らせて頂き改め投稿させて頂こうと思います。

お礼日時:2009/02/13 12:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!