• 締切済み

excleのオートフィルタの関数というか・・・

なんと質問すればいいか・・ 基本的にそういう関数があるか無いか? 知りたいのです たとえばAの列に 2 4 3 6 1 2 1 4 5 3 など入っていて、オートフィルタをすると、 ドロップダウンボックスの選択する部分で 1 2 3 4 5 6 となりますよね? つまり、指定の範囲の中から、単独の項目を引き出したいのです オートフィルタがその機能があるのだから それを作る関数ってエクセル持ってるはずですよね? でもその関数がわからないんです どなたかご存知ないですか?

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

>データベースクエリ?ってエクセルの機能ですか? データベースクエリは、エクセルの機能です。 メニューのデータ~外部データの取り込み~新しいデータベースクエリで作ることができます。 メニューでは、外部データとなっていますが、 保存してから実行すれば、自分自身を外部データとして取り込むことができます。 クエリのSQL表現のサンプル SELECT DataTable.data, Count(DataTable.data) AS '個数' FROM `E:\sample\クエリ`.DataTable DataTable GROUP BY DataTable.data 処理をする範囲にDataTableという範囲名を付けてあります。 また、データの一行目にフィールド名としてdataという文字列を挿入してあります。 数値と文字列が混在している時、個数を数えるには、 数値を文字列としておく '5 とか 必要があります。 項目毎の個数を数えるだけだったら、 データ~並び替えをしてから データ~集計(個数を数える) で表示を閉じる(-)すればいいような気もします。

noname#35109
noname#35109
回答No.4

こんなのじゃダメですか。 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列に個数がカウントされます。

deepimpact
質問者

補足

ありがとうございます。 でも、当初の目的ではないんです >その新種を1つずつメモしていかなければならない これがメモせずに抽出したいんです。 むしろその数より、こっちがどうすればいいかって事なんです なぜなら行が100単位で行が増えるからです。 いまはドロップダウンして、前にあったのかなかったのか判定して(目視で)あればそれを上の式のようにしてるんです。 オートフィルタを行って、ドロップダウンリストにはすぐに反映されますよね?(単独のものの抽出) それが、なぜ、関数でないのか(もちろん行数が増えるからってのはわかるんですが)不思議でしょうがないんですよね

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>オートフィルタがその機能があるのだから >それを作る関数ってエクセル持ってるはずですよね? オートフィルタと同等なワークシート関数はないと思います。 強いていえば、SQL.REQUEST関数がそれに近いかと思います。 手順を踏んでもいいなら、 フィルタオプションで重複しない項目をC列にとりだしD列でCOUNTIFする あるいは、 データベースクエリを使う といいかと思います。 マクロを使えば、できるのはできると思います。

deepimpact
質問者

補足

ありがとうございます データベースクエリ?ってエクセルの機能ですか? もちろん調べてみます。 ありがとうございます

  • TK01
  • ベストアンサー率43% (43/100)
回答No.2

関数ではなくて機能ですが、ピボットテーブルを作ると、異なる値が重複なく、漏れなく表にすることができますよ。 つまり、ご質問者さんのサンプルを元にピボットを使うと、以下のような結果が表になって見られます。 データの個数 1 2個 2 2個 3 2個 4 2個 5 1個 6 1個

deepimpact
質問者

お礼

調べてみました。 たぶん出来るのはできますね ただ こちらの説明不足だったのですが アクティブではないので、ちょっと使いづらいです データベースが完成してからでないと使えないというか・・ 先ほどのA列っていうのはどんどん増え続ける&途中が変更する可能性があるので、そのたびにぴポットしないといけないんですね。。。 せめてオートフィルタをやった後のあの選択部分がコピーできれば言うことないんですけど・・・・ 関数であると思ってたのが、甘かったみたいですね オートフィルタだったら即座に集計するので、絶対あると思ってました。残念です

deepimpact
質問者

補足

ありがとうございます それで出来るのであれば関数にはこだわってないです でも ピボットテーブルってなんですか? エクセルに普通についてるものですか? あ、一応検索してみます ありがとうございました。

  • wakasi
  • ベストアンサー率41% (49/117)
回答No.1

質問が良く理解できませんが、 オートフィルタのドロップダウンボックスで例えば「1」を選択すれば「1」が抽出されます。 これでdeepimpactさんがやりたいと言われていることは出来てしまいます。 その先抽出したデータをどうしたいのか(例えばカウントしたいとか)によって、EXCELでのデータの抽出方法は色々とあります。 もうすこし詳しくやりたい事を書いて頂ければ、それに応じた回答ができると思います。

deepimpact
質問者

補足

すいません説明が下手で 具体的に行きましょう 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とわかってますが、それもわかっては無く、その数ぶん抽出したいのです 説明伝わってますでしょうか?

関連するQ&A