重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

下記のようなエクセルシートがあったとします。
メーカーシートの製品登録数のセルにメーカーIDと一致する項目を製品シートのメーカーIDの列から検索し一致した場合カテゴリ1、2、3のセルから空白以外のセルをカウントするにはどうすればよいでしょうか?

--------------------------------------------
製品シート
メーカーID|製品カテゴリ1|製品カテゴリ2|製品カテゴリ3

--------------------------------------------
メーカーシート
メーカーID|メーカー名|製品登録数

A 回答 (3件)

VBAでの回答が早く出来たので、


(1)下記はSheet4に「製品シート」、Sheet5に「メーカシート」を置いて少数例でテストしました。
(2)100は製品シートの最下行+アルファ行数に変えてください。
(3)メーカーIDは第1列にあるものとしています。
(4)求める数はメーカーシートの第3列にセットしています。
(5)製品カテゴリは3までとしています。
(6)第1行からデータがある仮定になっている。
Sub test01()
Dim a As Object
d = Worksheets("sheet5").Range _,("a1").CurrentRegion.Rows.Count '最下行行数
For i = 1 To d
n = 0
Worksheets("sheet4").Range("a1:a100").Select
Set a = Selection.Find(What:=Worksheets("sheet5").Cells(i, 1), _
After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False)
'("a1:a100").はA100までしか見てない。増
'やすこと。(2)
'(i,1)はA列を探していることを示す (3)
a.Activate
k = a.Row
If a = "" Then GoTo p02
n = n + kaunto(k)
km = k
p01:
Set a = Selection.FindNext(After:=ActiveCell)
a.Activate
k = a.Row
' MsgBox k & "=" & km
If km >= k Then GoTo p02
n = n + kaunto(k)
km = k
GoTo p01
p02:
Worksheets("sheet5").Cells(i, 3) = n '(4)
Next i
End Sub
'----------第K行の入力セルを数える
Function kaunto(k)
m = 0
For i = 2 To 4 'B-D列 (5)
If Worksheets("sheet4").Cells(k, i) <> "" Then
m = m + 1
End If
Next i
kaunto = m
End Function
    • good
    • 0

<補足要求>


(1)要するに「メーカーシート」の「製品登録数」を自動的に出したいということですね。
(2)「製品シート」の「メーカーID」は「ユニーク」(=同じメーカーIDが複数行現われないこと。)ですか?。
(3)同じく「メーカーシート」の「メーカーID」は「ユニーク」(=同じメーカーIDが複数行現われ無いこと。)ですか?。
(4)両シートは「メーカーID」で「ソート」(昇・降順並び替え)されていますか。

この回答への補足

補足に対してお答えします。

1)そういうことです。
2)ユニークではありません。
3)ユニークです。
4)させておりません。ただしメーカーシートに方は
会員フラグ「1」非会員「0」がたっていて降順でソートしています。

以上、よろしくお願いします。

補足日時:2002/12/25 12:53
    • good
    • 0

私だったら、製品シートの製品カテゴリー3の横に空白以外のセルをカウントしておいて、(=COUNTA(製品カテゴリー1:製品カテゴリ

ー3)その後、製品登録数セルで、(=VLOOKUP(メーカーID,メーカーID:製品カテゴリー3,4,0)という関数から値を持ってきますがいかがでしょうか?

この回答への補足

どうもありがとうございます。
"COUNTA"は試してみたのですが、空白のセルがどうしてもカウントされてしまっているようです。おそらくスペースか何かをカウントしてしまっているようで、正確な数値が出せません。

"COUNT"も試してみたのですが、こんどは数値を思うようにカウントしてくれません。書式設定を"数値"にしてもうまくいきません。何かほかに問題があるのでしょうか?

補足日時:2002/12/25 13:01
    • good
    • 0

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