今仮に、元データが存在しているシートがSheet1であるものとし、Sheet3のA列とB列を作業列として使用して、Sheet2のA列に各社名を、Sheet2のB列にその会社が保有している商品コードの個数を、自動的に表示させるものとします。
尚、以下の関数は、元データが入力されているシートにおいて、行やセルの切り取り、貼付け、挿入、等の編集作業を行っても、正常にカウント致しますし、同じ社で重複した商品コードが入力されていた場合には、重複している商品コードの内、後から入力されたものはカウントしないようになっています。
まず、Sheet3のA2セルに次の関数を入力して下さい。
=IF(COUNTIF(Sheet1!$A$1:INDEX(Sheet1!$A:$A,ROW()),INDEX(Sheet1!$A:$A,ROW()))=1,ROW(),"")
次に、Sheet3のB2セルに次の関数を入力して下さい。
=IF(OR(INDEX(Sheet1!$A:$A,ROW())="",INDEX(Sheet1!$B:$B,ROW())="",COUNTIF(B$1:B1,INDEX(Sheet1!$A:$A,ROW())&INDEX(Sheet1!$B:$B,ROW()))>0),"",INDEX(Sheet1!$A:$A,ROW())&INDEX(Sheet1!$B:$B,ROW()))
次に、Sheet3のA2~B2の範囲を選択してから、選択範囲を示す黒い太枠の内側にカーソルを合わせて、マウスを右クリックして下さい。
次に、現れた選択肢の中にある[コピー]をクリックして下さい。
次に、Sheet3を開いた状態で、名前ボックス(A1セルの上にあるアクティブな状態となっているセル番号が表示されている欄)をクリックし、上記の数式を貼り付けるセル範囲を指定して下さい。
例えば、Sheet1において、データが入力される可能性があるセル範囲が、A2~B20000である場合には、名前ボックスで指定するセル範囲を入力する際にも、同様にA2:B20000と入力して下さい。
次に、選択範囲を示す黒い太枠の内側にカーソルを合わせて、マウスを右クリックして下さい。
次に、現れた選択肢の中にある[貼付け]をクリックして下さい。
次に、Sheet2のA2セルに次の関数を入力して下さい。
=IF(ROWS($A$2:$A2)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$A:$A,SMALL(Sheet3!$A:$A,ROWS($A$2:$A2))))
次に、Sheet2のB2セルに次の関数を入力して下さい。
=IF($A2="","",COUNTIF(Sheet3!$B:$B,$A2&"*"))
次に、Sheet3で行ったのと同様なやり方で、Sheet2のA2~B2の範囲をコピーして、Sheet2のA2~B20000の範囲に貼り付けて下さい。
以上です。