アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルの関数でF列に商品番号、C列に店舗名が入力されている表があり、どの品番が何店舗に注文があったかをQ列に表示したいのですが、マクロで可能でしょうか?
※C、F、Q列の1行目は項目になっています。

【C列店舗名/F列品番】
A店/100
C店/200
A店/200
H店/500
C店/100
A店/600
A店/200

Q列に表示
100は2店舗
200は3店舗
500は1店舗
600は1店舗

質問者からの補足コメント

  • 重複した店舗はカウントしない方法でお願い致します。

    No.1の回答に寄せられた補足コメントです。 補足日時:2019/06/04 14:36

A 回答 (4件)

重複した店舗もカウントしてよいのであれば、countif関数でよいのでは。

この回答への補足あり
    • good
    • 0

これ見てやってみて


http://www.excel-list.com/countif.html
    • good
    • 0

こんにちは



>マクロで可能でしょうか?
多分、可能でしょう。

「品番」-「店舗名」をキーにしてソートしておいて、上から順に見て行けば良さそうですね。
重複データは必ず連続して出現するので、それだけ省いてゆくようにすれば良いでしょう。
シート内のデータ順を変えてはいけない場合は、直接ソートするわけにはいきませんので、別シートを利用するか、一旦変数に取込んでから変数内で同様の処理を行うかでしょうか。


一方で、関数でも可能そうなので、長くはなりますが、一応ご参考まで。
※ 関数利用の場合は、処理を分解し、作業列等を利用して順次求めてゆくようにした方が遥かに良いと思います。

とは言え、Q2セルに
=IFERROR(INDEX(F$2:F$100,AGGREGATE(15,2,ROW(A$1:A$99)/(COUNTIF(OFFSET($F$2,0,0,ROW(A$1:A$99)),F$2:F$100)=1),ROW(A1)))&"は"&SUMPRODUCT(INDEX(COUNTIFS(OFFSET(C$2,0,0,ROW(A$1:A$99)),C$2:C$100,OFFSET(F$2,0,0,ROW(A$1:A$99)),F$2:F$100,OFFSET(F$2,0,0,ROW(A$1:A$99)),INDEX(F$2:F$100,AGGREGATE(15,2,ROW(A$1:A$99)/(COUNTIF(OFFSET($F$2,0,0,ROW(A$1:A$99)),F$2:F$100)=1),ROW(A1))))=1,,)*1)&"店舗","")

の式を入れて、下方にフィルコピーでも算出可能ではないかと思います。
    • good
    • 0

マクロで処理する場合、シート名が必要ですが、シート名は何でしょうか。


シート名を指定しない場合、アクティブなシートに対して処理することになりますが、それで良いですか。
    • good
    • 0

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