• 締切済み

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

  • (EXCEL)オートフィルタで折りたたまれない列をつくりたい

    EXCELのオートフィルタ機能は、 抽出するとオートフィルタに選択してない列も折りたたまれますよね? オートフィルタに指定していない列のみ (または特定の列のみ) 折りたたまれないようにできる設定は可能ですか?

  • オートフィルターの実現方法

    こんにちは! Excelにオートフィルターの機能ってありますよね。 フィルターしたときの フィルター候補(コンボボックスの項目)って うまいこと考えられていて自分の列の候補は 他の列のフィルター条件にマッチするものが入りますよね? あれと同等の機能をC(SDK)にて実現させたいのですが、 フィルター候補をピックアップする良い 方法はありませんか? 皆さんよろしくお願いします

  • オートフィルタとドロップダウンリストの連動について

    Excel2003を使用しています。 添付の表で 黄色いC4セルにはH2~H5の記号のドロップダウンリストが設定されています。 この状態で、たとえば表AのNo.列で1をオートフィルタで選択したときに、 C4も連動する形で自動的に「■」を表示させたいのです。 2を選択した場合なら「●」を、3を選択したら「△」をという感じです。 VLOOKUPと何かの関数を組み合わせるのではないと思いましたがうまくいきません。 アドバイスよろしくお願いします。 可能であればマクロやVBAではなく関数でできればうれしいです。 また逆バージョン(「■」を選択するとオートフィルタで「1」が自動的に選択される)でもかまいません。 どうぞよろしくお願いします。

  • オートフィルタのドロップダウンリスト

    オートフィルタでドロップダウンリストを使うとき、表示される項目の数が少ないと感じるときが多いのですが、この数を増やすことは出来ないのでしょうか。 その列の横幅を広げてやれば、リストの横幅も一緒に広がりますが、縦方向もいじりたいのです。 ACCESSですと簡単に任意に設定できますが、EXCELではどうすればよいのでしょうか。

  • エクセル2007で行にオートフィルタをかけたい

    エクセル2007で行データにオートフィルタをかけたいのですが できません. 範囲をどのように選択してもかならず列データにオートフィルタが かかってしまうのですが どうにかして行データにオートフィルタをかけたいです. どなたかご教授願います

  • オートフィルタ 助けてください!

    初心者です。 エクセルのオートフィルタを使って抽出しようとしても、ある範囲までしかオートフィルタが反映されません。 範囲の設定がおかしいのではと思うのですが、フィルタオプションでの範囲の指定方法が良く分かりません。 すみませんがご回答お願いします。

  • エクセル オートフィルタ

    A  B  C 01 X1 HH 02 Y1 03 X2 04 X5 HH 05 Z2 : : : 99 Z9 HH 簡略的に書いたので実際は項目数なども多く乱雑ですが こんな感じで成ってる表で、それぞれの列のドロップダウンリストを A:[1-10][11-20]・・・ B:[Xを含む][Yを含む]・・・ C:[空白以外] と言った様な自分で設定した項目に差し替えると言う事はできるでしょうか? 同様の結果だけなら、フィルタオプションでできるのは分かったのですが、状況に応じて選択式にしたいのです。 オートフィルタのメニューその物を変えれなくてもフィルタ条件をリストから選択できるようになれば良いのですが。

  • Excel オートフィルタのリストを取得したい

    ExcelのVBAです。 オートフィルタの▼をクリックすると、 重複していないリストが出ます。 このリストを列ごと(指定列)取得したいです。 できれば、Functionで組み、 配列に格納し、使いたいと思っています。 戻り値で配列は出来なかった気がしますが、 どうでしょうか… やりたいことをまとめます。 ---------------------- Call オートフィルタリスト("A") 配列をリストボックスに表示 選択し、上下の配置などを変更できるように (Excelも連動し、2行目と3行目の位置を変更したりすることができる) 新規追加 そのリスト最終行に新規データを入力 そして、それをExcelにも反映 ------------------------ Function オートフィルタリスト(指定列) 配列定義 指定列の範囲選択 オートフィルタのリストを配列に格納 (重複は削除します) 配列を返します。 End Function ------------------------------ まとめるどころか余計ぐちゃぐちゃした気もしますが、 回答よろしくお願い致します。

  • エクセルのオートフィルタ

    オートフィルタは空白行または空白セルがあっても データはうまく並べ替えられますか? 以前、並び替えを使った時は空白セルがあったためか 10列程1000行程のデータでしたが、右2列程が 反映されず、データがばらばらになってしまって 作り直すのに苦労しました。今はオートフィルタを 使う時も範囲指定でデータがある範囲を全て選択して います。

  • エクセルのオートフィルタ機能について

    お世話になります。 エクセルのオートフィルタ機能(エクセル2003)がうまく効かず困っております。 【状態】 1112345 1114567 1117890 上の様なデータの中で頭3桁が111のデータを抽出したいとします。 (1)オートフィルタのオプション検索にて、「111を含む」を使用し、探したい条件を入力実行→結果は何も表示されない(空白セルのみ) (2)文字列の影響かと思い、検索範囲のセルから「111」をコピペして入力実行するも、結果同じ プルダウンで表示される一覧から「1112345」を選択すればその項目は表示される。 「~と同じ」の条件では上手く機能するので、仕方なくLEFTで頭3桁を列追加して検索かけてますが、 データ量が多くいかんせん不便。。。 「~を含む」機能が使えないのは何が悪いのでしょうか? 当方エクセルに詳しい訳ではないので打つ手が見つからず困っております。 起動時マクロ設定の有効、無効の選択ありますがどちらもダメでした。