• ベストアンサー

エクセル2003で質問です。オートフィルタで「トップテン」という表示が

エクセル2003で質問です。オートフィルタで「トップテン」という表示ができますよね? ということは、(10位以下も続けて)多いものから順に並べる、ということもできるのでしょうか? できるようでしたら、やり方を教えていただきたいです。 その場合、オートフィルタを使わなくてもかまいません。 多いものから順に並べたデータが別のデータとして作成できればそれでも助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.10

オートフィルタなどで行を表示されるとのことで、その際に最も出現回数の多いものを上の行に並べるとのことで答えをしてきましたが、そうではなく最も出現回数の多いものの順に品名を並べたいとのことでしたら方法は全く異なりますね。 例えばA1セルには品名とあり下の行にりんごなどのデータが入力されるとしたらB列は作業列としてB2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,COUNTIF(A:A,A2)+(0.1-ROW(A1)/10000),"")) B列には小数点付きの数値などが並びますがこれは同じ回数がある品名がいくつかあるときにそれらを上から順に並べるための工夫です。 そこでお求めの表ですが例えばD1セルに品名、E1セルには出現回数とでも入力します。 D2セルには次の式を入力して下方にオートフィルドラッグしあす。 =IF(ROW(A1)>COUNT(B:B),"",INDEX(A:A,MATCH(LARGE(B:B,ROW(A1)),B:B,0))) E2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(D2="","",COUNTIF(A:A,D2))

nekomyumyu
質問者

お礼

たくさんご回答いただきありがとうございました。 作業としてはこれを検証しないままに必要な時期が終わってしまい データも手元にもうないので、これでできたかどうかは正直わかりません。 ですが、みなさんが私のつたない説明で いろんなパターンを試みてくださったことに感謝します。 いつまでもお礼が遅れてしまうのも恐縮ですので、一度締め切りたいと思います。 BAは一番多くご回答くださった方に。他のみなさまもありがとうございました。

その他の回答 (9)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.9

回答No7です。B列に小数点以下が表示されるのは何ら問題ありません。同じリンゴならリンゴの行がランクに応じて集団としてお互いの行が連続した状態で並ぶようにするために工夫をしているのです。

nekomyumyu
質問者

お礼

そうなのですね、ありがとうございます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.8

No.4・5です! 大きく外していたようでごめんなさい。 もう一度画像をアップしてみます。 ↓の画像でA列にデータがありその出現回数の多い順に表示すれば良いわけですよね? B列を作業用の列として、データの出現回数を表示させます。 B2セルに =IF(COUNTIF($A$2:A2,A2)=1,COUNTIF(A:A,A2),"") という数式を入れ、フィルハンドルの(+)マークでダブルクリック、またはオートフィルで下へコピーします。 そして、D2セルに =IF(F2="","",RANK(F2,$F$2:F2)) E2セルに =IF(F2="","",INDEX($A$2:$A$1000,SMALL(IF($B$2:$B$1000=F2,ROW($A$1:$A$999)),COUNTIF($F$2:F2,F2)))) これは配列数式になってしまいますので、この画面からE2セルにコピー&ペーストした後に、 F2キーを押す、まがはE2セルをダブルクリック、または数式バー内で一度クリックし、編集可能にしたあとで Shift+Ctrlキーを押しながらEnterキーで確定です。 F2セルには =IF(COUNT($B$2:$B$1000)<ROW(A1),"",LARGE($B$2:$B$1000,ROW(A1))) (これは配列数式ではありません) 最後にD2~F2セルを範囲指定し、F2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、数式は元データの1000行目まで対応できるようにしています。 以上、長々と失礼しました。m(__)m

nekomyumyu
質問者

補足

ありがとうございます! たくさん書いていただいたのですが、 Eの項目に同じ項目が出てしまい、うまくできません… B列で回数がでただけでも作業としては間に合いそうなので とりあえずB列の数式で作業をすすめます! お礼が遅くなるかもしれませんが、お許しください。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.7

回答No2,6です。 A1セルに品名とか入力してB列およびC列は作業列でB2セルには次の式を入力して下方オートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,COUNTIF(A:A,A2),INDEX(B$1:B1,MATCH(A2,A:A,0))-COUNTIF(A$2:A2,A2)/1000)) C1セルにはランクとでも入力しC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",RANK(B2,B:B,0)) その後にC列を選択して「データ」メニューから「並べ替え」、さらに選択範囲を拡張するのままで「並べ替え」をクリックします。 ランクが最優先されるキーで「昇順」となっていることでしょうからそのままOKすればよいでしょう。 バナナ、りんご、パイナップルなどの順でA列には品名が並びますね。

nekomyumyu
質問者

補足

すみません、B列に入力してオートフィルドラッグをすると、なぜか小数点のある数値が… これは特に気にしなくていいのでしょうか?

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

回答No2です。文字列が入力されている列を対象にした場合、エクセル2003のオートフィルタでの[トップテン]の操作は機能しません。 文字列が入力されている列を対象に文字列の長さが多い順にデータを並べるのでしたら次のようにされてはいかがでしょう。 例えばA列の2行目から下方にデータがあるとします。 B列やC列は作業列としてB1セルには文字数とでも入力し、B2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",LEN(A2)) 次にC1セルにはランクとでも入力し、C2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",RANK(B2,B:B,0)) これでC列には最も文字数の多い行に1が、その他の行についても文字数の量に応じて順位が表示されます。 そとでC列を選択してから「データ」メニューから「並び替え」を選択します。 「選択範囲を拡張する」にチェックがされたままで「並び替え」をクリックします。 次の表示の画面でOKボタンをクリックすることでA列には文字列の長い行が上の行に並んで表示されることになります。A列の望みの範囲を選択してコピーし、別のシートなどに貼り付けを行うなどのことをすればよいでしょう。

nekomyumyu
質問者

お礼

たくさん書いていただいたのにすみません、下の方にもお伝えしたのですが、 文字列の多いものではなくて、… たとえば、、りんご、バナナ、バナナ、バナナ、パイナップル、りんご、もも、バナナとあったら、 バナナ、りんご、もも、パイナップルと並んで欲しいという意味でした。 私がトップテンの機能をよく理解できていなかったために皆さんを混乱させてしまったようで 申し訳ありません。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.4です! たびたびごめんなさい。 投稿した後でもう一度質問文を読んでみると >多いものから順に並べたデータが別のデータとして作成できればそれでも助かります。 とありましたので、再びお邪魔しました。 前回の表はそのまま使わせてもらって E2セルの数式だけを変更してみてください。 E2セルは =IF(COUNT($C$2:$C$100)<ROW(A1),"",SMALL($C$2:$C$100,ROW(A1))) F2セルは前回の数式そのままで前回同様配列数式ですので、Shift+Ctrlキーを押しながらEnterキーで確定です。 E2・F2セルを範囲指定し、F2セルのフィルハンドルでオートフィルで下へずぃ~~~!っとコピーすると 全てのデータが表示されるはずです。 どうも何度も失礼しました。m(__)m

nekomyumyu
質問者

お礼

こちらこそたびたびすみません。 質問自体がおかしかったようで… 大変失礼いたしました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 横からお邪魔します。 No.2さんの補足に >文字データでも多いものから順に並びますよね?<トップテン とありますが、これは文字数が多いものからトップテンを表示したい!ということでしょうか? 一応そういうことだとして・・・ 文字数での順位づけをした場合は同順位(同じ文字数のセル)も出てくるかと思いますので、 それに対応できる方法です。 (同順位の場合は上側の行のデータが最初に表示されます。) ↓の画像のように作業用の列を2列設けています。 作業列B2セルに =LEN(A2) C2セルに =RANK(B2,$B$2:$B$100) として、B2・C2セルを範囲指定し、C2セルのフィルハンドルの(+)マークでダブルクリック、またはオートフィルで下へコピーします。 そして、表示させたいセルE2に =IF(COUNTIF($C$2:$C$100,"<=10")<ROW(A1),"",SMALL($C$2:$C$100,ROW(A1))) F2セルに =IF(E2="","",INDEX($A$2:$A$100,SMALL(IF($C$2:$C$100=E2,ROW($A$1:$A$99)),COUNTIF($E$2:E2,E2)))) このF2セルの数式は配列数式になってしまいます。 F2セルにこの画面からコピー&ペーストしただけではエラーになるか、まともなデータを返しませんので F2セルに貼り付け後、F2キーを押す、またはF2セルをダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 最後にE2・F2セルを範囲指定し、F2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、数式は元データの100行目まで対応できるようにしていますが、データ量によって範囲指定の領域はアレンジしてください。 以上、参考になればよいのですが 的外れなら読み流してくださいね。m(__)m

nekomyumyu
質問者

お礼

ああ、たくさん書いていただいたのにすみません… 「>文字データでも多いものから順に並びますよね?<トップテン とありますが、これは文字数が多いものからトップテンを表示したい!ということでしょうか?」 いえ、そうではなくて、たとえば、、りんご、バナナ、バナナ、バナナ、パイナップル、りんご、もも、バナナとあったら、 バナナ、りんご、もも、パイナップルと並んで欲しいという意味でした。 お手数をおかけしたのに本当にすみません。

  • conanthe
  • ベストアンサー率65% (114/175)
回答No.3

文字列の場合、「トップテン」は機能しません。数字が文字列として入力してあるのなら、オートフィルタの▼をクリックしたときに出るメニューの上から2番目の「降順」をクリックすれば、文字列であっても大きい順に並べ替えられます。

nekomyumyu
質問者

お礼

そうなんですね。たまたま出てくるトップテンはあまり意味がないものだったのか… 無知で本当にすみません、ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

数値を大きいものから下方にデータをならべたい列を選択してから、ツールバー上の「降順で並べ替え」のボタンをクリックすることでよいでしょう。

nekomyumyu
質問者

お礼

説明不足ですみませんでした。ありがとうございました。

nekomyumyu
質問者

補足

質問の説明不足ですみません。数値ではなく文字データです。 文字データでも多いものから順に並びますよね?<トップテン

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

ピボットテーブル

nekomyumyu
質問者

お礼

ありがとうございます、しかしやり方がわかりません、ごめんなさい

関連するQ&A

  • Excel フィルタのトップテン機能が動作しません

    Excelファイルの一部の列で、オートフィルタの「トップテン」をクリックしても、「ポーン」と音がするだけで、表示が変わりません。 同じシート内でも、ちゃんと抽出される列もあります。 抽出されない列のセルの内容は、ごく一般的なデータです。 トップテンが使えないのは、どういう条件のときでしょうか?

  • EXCEL オートフィルタのトップテンの並び順

    一覧で、項目としてNo.、沿線名、賃料などがあります。 オートフィルタのトップテンで、賃料の高いもの10位まで出したのですが、このときのデータの並び順が、 No.の昇順でも、賃料の昇順でもないようなのですが、 何を基準で並ぶのでしょうか。 よろしくお願いします。

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

    エクセルで、オートフィルタをかけようとするのですが、その列に入力されている数値の選択ができません(すべて、トップテン、オプションしか選択肢に表示されない)。助けてください。

  • エクセルのオートフィルターで項目が表示されません。昇順・降順・すべて・

    エクセルのオートフィルターで項目が表示されません。昇順・降順・すべて・トップテン・オブションのみしか表示されません。データー項目が全く表示されません、どの列もです。お知恵をお貸し下さい。

  • エクセルのオートフィルターについて質問です

    エクセルのオートフィルターについて質問です オートフィルターの▼を押して実行した時の表示が以前はセル幅をまたいでデーターがすべて表示されていたのですが突然セル幅分のデターしか表示されなくなってしまいました。 改善の方法が判れば教えてください。

  • 大変困っています!エクセル オートフィルタについて

    いつもお世話になっております。 エクセル2007を使用して、データーベースを作成しております。 データが4万5千件程あり、オートフィルタを設定し、 氏名からや生年月日からでも検索出来るように設定しました。 そうしましたら、全表示にしても、 今まで表示されていた、住所欄以降のデータが見えなくなりました。 (氏名は全員分見れてます。) しかし、ある条件等を設定しオートフィルタで検索したら、 住所の欄のデータも見れるんです。 少し調べましたら、オートフィルタで表示される件数が1000件程とか・・・ それで、元に戻そうと思い、オートフィルタの設定を解除しても、 氏名は見れますが、住所等のデータが見れなくなってしまいました。。。 元に戻る方法を教えてください! もしくは、全表示される方法を教えてください。 大変困っております。 ちなみに、いろいろと修正をかけてしまった為、 過去のオートフィルタをかける前のデータを使用することは出来ません。 本当に困っております。 お判りになる方、大変申し訳ありませんが、よろしくお願いいたします。

  • Excelのオートフィルタの項目を21行以上表示したいのですが、、、

    Excelでオートフィルタを使っています。 ▼を押して ________ (すべて) (トップテン) (オプション)   ・   ・   ・ ________ ←――横幅――→ と増えますが、20項目以上になるとスクロールバーが付いてしまいます。これを20項目以上表示させたり、セルの大きさを変えずに、表示されるプルダウンメニューの横幅を広くしたりできないでしょうか? よろしくお願いします。

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

    エクセルで顧客管理の表を作成しているのですが、内容が多くなってしまった為、1件の情報を4行使用して作成しているのですが、オートフィルタを使って検索をすると4行の内の1行しか表示されません。4行を1つのデータ-として認識させることは可能でしょうか?また、別な方法などありましたら教えていただきたいのですが。お願い致します。

  • エクセルオートフィルタで余計なデータも表示される

    こんにちは。エクセルについて教えて頂きたいです。 あるデータベースにオートフィルタを付けているのですが、 ”空白セルのみ表示”にしているのに、絞り込んだデータの 下の方に 空白ではないのに表示されている行があります。 一度オートフィルタを外して再設定すると消えるのですが、 データが増えるたびに毎回このような状態になってしまいます。 どのようにすれば直るのでしょうか? 検索してみたのですがどんなキーワードを入れれば良いか 分からずうまく検索できなくて、こちらに質問させて頂きました。

  • エクセルのオートフィルタなのですが。

    オートフィルターで表示した(可視セル)のみをコピーして、別の列にそのデータを貼り付けたいのですが、貼り付けると、オートフィルターで非表示になっているデータまでも張り付けされて困っております。 どのようにしたら解決できますか? ご存知の方いましたら教えてください。

専門家に質問してみよう