プロが教える店舗&オフィスのセキュリティ対策術

 A
1 おにぎり
2 おにぎり
3 おにぎり
4 ラーメン
5 そば
(続く)

上のような既存の表から、品名を抽出し下のような集計表を作ろうとしています。
同じ品名がある場合詰めてリストアップします。 ←この方法が分からず難儀しています。

 B    C
1 おにぎり 3
2 ラーメン 1
3 そば   1
(続く)

B1~B3(続く)セルにどのような数式が考えられますでしょうか?
よろしくお願いいたします。

A 回答 (3件)

こんにちは!


一例です。
とりあえず同Sheetに表示するとします。

↓の画像のように作業用の列を1列設けます
(今回はF列にしていますが、目障りであれば列を非表示にするか遠く離れた列にします)

F2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(),"")
という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。

そして、C2セルに
=IF(COUNT(F:F)<ROW(A1),"",INDEX(A:A,SMALL(F:F,ROW(A1))))

D2セルに
=IF(C2="","",COUNTIF(A:A,C2))
という数式を入れ、C2・D2セルを範囲指定 → D2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

以上、参考になれば良いのですが・・・m(__)m
「Excelである表から文字列を抽出、別の」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます。
非常にスマートですね。
すばらしいです!

お礼日時:2011/10/17 21:16

ピボットテーブルの方が早くないですかね?

    • good
    • 0
この回答へのお礼

ありがとうございます。
ピボットテーブルという手もあるかなと思いましたが、
今回は数式で実現したかったのです。

お礼日時:2011/10/17 21:15

例示のレイアウト(1行目からデータが入力されている)なら、以下のような数式で重複のない文字列データを表示することができます。



=INDEX(A:A,SMALL(INDEX((MATCH($A$1:$A$100&"",$A$1:$A$100&"",)<>ROW($A$1:$A$100))*1000+ROW($A$1:$A$100),),ROW(A1)))&"

上記の数式は比較的計算負荷の高い配列数式ですので、(データ範囲が広い場合や)表示するデータ数が多くなる場合は、再計算に時間がかかりシートが重くなるかもしれません。
このような場合は、計算方法を手動にして、データを更新したいときだけF9キーで再計算するなどの対応するとよいと思います。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
出来るんですね。
すばらしいです。

お礼日時:2011/10/17 21:13

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