- ベストアンサー
Excelである表から文字列を抽出、別の表で整理
A 1 おにぎり 2 おにぎり 3 おにぎり 4 ラーメン 5 そば (続く) 上のような既存の表から、品名を抽出し下のような集計表を作ろうとしています。 同じ品名がある場合詰めてリストアップします。 ←この方法が分からず難儀しています。 B C 1 おにぎり 3 2 ラーメン 1 3 そば 1 (続く) B1~B3(続く)セルにどのような数式が考えられますでしょうか? よろしくお願いいたします。
- みんなの回答 (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
その他の回答 (2)
- chonami
- ベストアンサー率43% (448/1036)
ピボットテーブルの方が早くないですかね?
お礼
ありがとうございます。 ピボットテーブルという手もあるかなと思いましたが、 今回は数式で実現したかったのです。
- MackyNo1
- ベストアンサー率53% (1521/2850)
例示のレイアウト(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キーで再計算するなどの対応するとよいと思います。
お礼
早速のご回答ありがとうございます。 出来るんですね。 すばらしいです。
お礼
ありがとうございます。 非常にスマートですね。 すばらしいです!