- 締切済み
excleのオートフィルタの関数というか・・・
なんと質問すればいいか・・ 基本的にそういう関数があるか無いか? 知りたいのです たとえばAの列に 2 4 3 6 1 2 1 4 5 3 など入っていて、オートフィルタをすると、 ドロップダウンボックスの選択する部分で 1 2 3 4 5 6 となりますよね? つまり、指定の範囲の中から、単独の項目を引き出したいのです オートフィルタがその機能があるのだから それを作る関数ってエクセル持ってるはずですよね? でもその関数がわからないんです どなたかご存知ないですか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>データベースクエリ?ってエクセルの機能ですか? データベースクエリは、エクセルの機能です。 メニューのデータ~外部データの取り込み~新しいデータベースクエリで作ることができます。 メニューでは、外部データとなっていますが、 保存してから実行すれば、自分自身を外部データとして取り込むことができます。 クエリのSQL表現のサンプル SELECT DataTable.data, Count(DataTable.data) AS '個数' FROM `E:\sample\クエリ`.DataTable DataTable GROUP BY DataTable.data 処理をする範囲にDataTableという範囲名を付けてあります。 また、データの一行目にフィールド名としてdataという文字列を挿入してあります。 数値と文字列が混在している時、個数を数えるには、 数値を文字列としておく '5 とか 必要があります。 項目毎の個数を数えるだけだったら、 データ~並び替えをしてから データ~集計(個数を数える) で表示を閉じる(-)すればいいような気もします。
こんなのじゃダメですか。 A B C Cの値 1 1 =COUNTIF(A:A,B1) 1 b 2 =COUNTIF(A:A,B2) 2 a 3 =COUNTIF(A:A,B3) 3 3 4 =COUNTIF(A:A,B4) 3 d 5 =COUNTIF(A:A,B5) 1 2 6 =COUNTIF(A:A,B6) 0 e 7 =COUNTIF(A:A,B7) 0 a 8 =COUNTIF(A:A,B8) 0 4 9 =COUNTIF(A:A,B9) 0 b a =COUNTIF(A:A,B10) 3 a b =COUNTIF(A:A,B11) 2 5 c =COUNTIF(A:A,B12) 1 4 d =COUNTIF(A:A,B13) 1 c e =COUNTIF(A:A,B14) 3 3 =COUNTIF(A:A,B15) 0 2 =COUNTIF(A:A,B16) 0 4 =COUNTIF(A:A,B17) 0 e =COUNTIF(A:A,B18) 0 3 =COUNTIF(A:A,B19) 0 e =COUNTIF(A:A,B20) 0 フォントの都合上,ずれて見えるかもしれませんが。 欠点はA列に新種が増えるとB列にその新種を1つずつメモしていかなければならないところですが, それさえすれば自動的にC列に個数がカウントされます。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>オートフィルタがその機能があるのだから >それを作る関数ってエクセル持ってるはずですよね? オートフィルタと同等なワークシート関数はないと思います。 強いていえば、SQL.REQUEST関数がそれに近いかと思います。 手順を踏んでもいいなら、 フィルタオプションで重複しない項目をC列にとりだしD列でCOUNTIFする あるいは、 データベースクエリを使う といいかと思います。 マクロを使えば、できるのはできると思います。
補足
ありがとうございます データベースクエリ?ってエクセルの機能ですか? もちろん調べてみます。 ありがとうございます
- TK01
- ベストアンサー率43% (43/100)
関数ではなくて機能ですが、ピボットテーブルを作ると、異なる値が重複なく、漏れなく表にすることができますよ。 つまり、ご質問者さんのサンプルを元にピボットを使うと、以下のような結果が表になって見られます。 データの個数 1 2個 2 2個 3 2個 4 2個 5 1個 6 1個
お礼
調べてみました。 たぶん出来るのはできますね ただ こちらの説明不足だったのですが アクティブではないので、ちょっと使いづらいです データベースが完成してからでないと使えないというか・・ 先ほどのA列っていうのはどんどん増え続ける&途中が変更する可能性があるので、そのたびにぴポットしないといけないんですね。。。 せめてオートフィルタをやった後のあの選択部分がコピーできれば言うことないんですけど・・・・ 関数であると思ってたのが、甘かったみたいですね オートフィルタだったら即座に集計するので、絶対あると思ってました。残念です
補足
ありがとうございます それで出来るのであれば関数にはこだわってないです でも ピボットテーブルってなんですか? エクセルに普通についてるものですか? あ、一応検索してみます ありがとうございました。
- wakasi
- ベストアンサー率41% (49/117)
質問が良く理解できませんが、 オートフィルタのドロップダウンボックスで例えば「1」を選択すれば「1」が抽出されます。 これでdeepimpactさんがやりたいと言われていることは出来てしまいます。 その先抽出したデータをどうしたいのか(例えばカウントしたいとか)によって、EXCELでのデータの抽出方法は色々とあります。 もうすこし詳しくやりたい事を書いて頂ければ、それに応じた回答ができると思います。
補足
すいません説明が下手で 具体的に行きましょう A1~A20の範囲で 1 b a 3 d 2 e a 4 b a 5 4 c 3 2 4 e 3 e というデータがあります これをC1から下に 1は1個 2は2個 3は3個 4は3個 5は1個 aは3個 bは2個 cは1個 dは1個 eは3個 と表現したいんです。(もちろん項目はC1で個数D1でかまいませんが) それができる関数が知りたいんです。 上のデータはオートフィルタをして、数を数えて集計しただけなんですが、簡単にいうとオートフィルタを使わずにそれがしたいということです 例は1とかaとかですが、 本当はもっと違う言葉が入り、なおかつ 20行どころでなく2000行ほどあります。 C1から抽出する項目も、言えば固定できるわけでもなく A1-20に今1から5,A-Eとわかってますが、それもわかっては無く、その数ぶん抽出したいのです 説明伝わってますでしょうか?
補足
ありがとうございます。 でも、当初の目的ではないんです >その新種を1つずつメモしていかなければならない これがメモせずに抽出したいんです。 むしろその数より、こっちがどうすればいいかって事なんです なぜなら行が100単位で行が増えるからです。 いまはドロップダウンして、前にあったのかなかったのか判定して(目視で)あればそれを上の式のようにしてるんです。 オートフィルタを行って、ドロップダウンリストにはすぐに反映されますよね?(単独のものの抽出) それが、なぜ、関数でないのか(もちろん行数が増えるからってのはわかるんですが)不思議でしょうがないんですよね