• ベストアンサー

EXCELでデータのグループ化をして整理したい

以下のように縦にならんだ数字を 1 14 14 35 35 35 35 14 14 14 2 2 2 2 1 グループ化して「順番をかえずに」以下のように並べたいです。 1 14 35 14 2 1 このようにできる関数かなにかありますか? ピボットテーブルやオートフィルタを試してみたのですが、 1,2,14,35 のように、小さい順にならびかわってしまいます。。。 よろしくお願いします!

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>このようにできる関数かなにかありますか? 関数ですから、別のセルに抽出、表示してもよいですね。 元のデータが100行目まであるとして  =INDEX(A:A,SMALL(INDEX(SUBSTITUTE(NOT(EXACT($A$1:$A$100,$A$2:$A$101))*1,0,10^5)*ROW($A$1:$A$100),),ROW(Z1))) を同じシートの適当なセルに貼り付けて下方向にコピーしてください ただしこの式は表示するデータがないと#REF!エラーになります。 エラー表示しないようにするには以下のようにIF文を追加します  =IF(ROW(Z1)<=SUMPRODUCT(NOT(EXACT($A$1:$A$100,$A$2:$A$101))*1),INDEX(A:A,SMALL(INDEX(SUBSTITUTE(NOT(EXACT($A$1:$A$100,$A$2:$A$101))*1,0,10^5)*ROW($A$1:$A$100),),ROW(Z1))),"") 範囲を修正するときは「EXACT($A$1:$A$100,$A$2:$A$101)」の部分(2カ所あります)でセル範囲が「$A$1:$A$100」,「$A$2:$A$101」と一行ずれていることに注意してください

masunona
質問者

お礼

す・・・すごい!!できました!! 数式をそのままコピペさせてもらって 参照セルだけ変えてみたら見事にできました! ところでずうずうしいお願いなんですが、 式の意味を教えていただいてもよろしいでしょうか?? 関数をひとつひとつ調べてみたんですけど、 どうも意味がわからないのです。。。 「^」とか使ったことないのです。 初心者でゴメンナサイ。 よろしくお願いします!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です 元のシートの空いている列の1行目に  =SUBSTITUTE(NOT(EXACT(A1,A2))*1,0,10^5)*ROW(A1) を入力して下方向にコピーしてください すると抽出するべき行には「その行の行番号」が表示され、その他の行には行番号×100000が表示されるはずです(10^5=100000) これをINDEX関数で配列にして、 「INDEX(SUBSTITUTE(NOT(EXACT($A$1:$A$100,$A$2:$A$101))*1,0,10^5)*ROW($A$1:$A$100),)」 SMALL関数で小さい方から1つずつ取り出し、 「これにはROW(A1)=1を使います。下にコピーすればROW(A2)=2、ROW(A3)=3と数値が変わります」 それを最初のINDEX関数でA列の値に置き換えています。

masunona
質問者

お礼

またまたお返事いただきありがとうございます! 書き込みいただいてから暇をみつけてはちょっとずつ 数式の見直しをしていました。 おかげさまでだいぶ分かってきました! このたびはまことにありがとうございました♪♪ また機会がありましたらよろしくお願いいたします!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでの重複しない並び替え

    A1から縦に 100 100 150 200 150 とランダムな数字があり、 B2から横に小さい順に、100 150 200という並びにしたいのですが、 SMALL関数を使うと100 100 150 150 200といった 並びになってしまいます。 重複した数字を除いた小さい順に並べるにはどのような関数式にすれば よろしいのでしょうか? フィルタを使わずに作成したいと思っています、よろしくお願いします。

  • Excelのピボットテーブルとgroup化

    Excelのピボットテーブルを学び始めました。そして同時にAccessも独学で勉強しています。 ExcelのピボットテーブルとAccessのグループ化とは同じ概念と考えていいのでしょうか? なんとなくピボットテーブルは簡易グループ化と同じイメージができてしまいました。

  • エクセデータを関数でグループにしたい。

    以下のように縦にならんだ文字数字を AB11 AB11 SG22 SG22 D765 D765 AB11 AB11 SG33 SG33 SG22 AB11 グループ化して以下のように並べたいです。 AB11 SG22 D765 SG33 また入力される文字は自動で入力され文字数字数は8文字までですがどのような数字が入力されるかは決まりがありません。 このようにできる関数はありますか? VBAではこのような事が出来る方法を探しましたが分けあって関数で行いたいと思ってます。 よろしくお願いします!

  • エクセルのピボットテーブルについて

    いつもお世話になっています。 エクセルのピボットテーブルについて教えてください。  (1) 複数のピボットテーブルを使うのですが、コピペで使いまわす際、    ピボットテーブルは範囲を変更できても、グラフは範囲を変更できないのでしょうか?      (2) 日毎のデータをピボット化した際に、    あるピボットでは日付フィルタ(先月、今月、昨年など)が表示されるのに、    他のピボットでは表示されなかったりするのはなぜでしょうか?  (3) 日毎のデータをグループ化(月毎)する際、まだグループ化していないのに●月として    でてきたり、しかも一部の日が取り残されていたりして    再度グループ化をしなくてはならなかったりするのはなぜでしょうか? よろしくお願いします。

  • エクセル上で図のグループ化解除ができない

    エクセル2003です。 丸や長方形、テキストボックスなど簡単な図形を いくつかグループ化したまではいいのですが、 解除できなくなりました。 どうしたら解除できますか? オートフィルタや関数などデータベース的なことはしていない、 ワードでも済むような、 単純なファイルです

  • エクセル 条件を満たすデータの数を表示させたい

    以下のデータにおいて、条件を満たす行数を表示させたく、COUNTIF関数、SUMPRODUCT関数など試してみたのですが、なかなか上手くいきません。どなたかご教授お願い致します。 得たい結果としては、 A1のセルに、A列に『田中』という文字が入っていてかつC列の値が『0以上24以下』の条件を満たす行の数を表示させたい。   _A_ _B_ _C_ _D_ _E_ _F_ 1  2 氏名   TEL  年齢  3 佐藤        24 4 田中        34 5 田中        12 6 日笠        88 7 田中        34 8 田中        20 9 伊藤        23 オートフィルタ、ピボットテーブルで数える事も可能ですが、データが都度変わるので、関数で表示させたいのです。 宜しくお願い致します。

  • Excel ピボットテーブルのグループ化について

    Excel2007を使用しています。商品別売り上げ表から複数のピボットテーブルを作成し、各々のピボットからグラフを作成しています。 あるピボットは、2009年全体の商品別売り上げを示しています。 そして、あるピボットは2009年の月別の売り上げを示しています。 データを更新した際に、月別のグループ化を再度行ったところ、 すべてのピボットが、月別表示に変わってしまいました。連動しているのでしょうか?以前のバージョンではそんなことは起きませんでした。 各ピボットテーブル毎にグループ化の内容を変えたいのですが、すべてが連動しているようです。どうしたらよろしいのでしょうか?教えてください。

  • エクセルで、オートフィルターに多数の条件をいれたい

    表題のように、エクセルで、日付、商品名、分類、数量、単価、金額・・・などの情報を、横並びにして、その一つ一つのデータが縦に1000行強あるようなシートの構成において、オートフィルタを使ってある条件にあったもののみを抽出したいのですが、条件が二つまでならオートフィルタのオプションで選べますが、ランダムな条件を4つ、あるいは6つという風にたくさん入れたい場合、どうすればいいでしょう?データとしてはピボットで解決できて集計もできますが、ピボットだと最初のデータと見た目が全然違ってしまうのであとに続く処理にはふさわしくないのです。 関数を使って、あるシートから多数の条件にかなったものを抽出するにはどうすればいいでしょうか?よろしくお願いします。

  • EXCELでテーブルのデータを自動的に参照する方法

    下記のようなAB2つのテーブルがあります。  <Aテーブル>   (1)1行目は数字の連番です。   (2)2行目は1行目の数字の頻出数です。  <Bテーブル>   (1)1行目は数字の連番です。   (2)2行目はLARGE関数でAテーブル(2)の頻出数を大きい順に並べた数値です。   (3)3行目に(2)の頻出数に該当するAテーブル(1)の数字を参照して、自動的に設定したいのですが、その方法が分かりません。(頻出数が同じ場合は若い数字順に参照します) 具体的には以下 Aテーブル  01 02 03 04 05 06 07 08 09 10   2 4 1 0 3 4 2 1 2 3 Bテーブル  01 02 03 04 05 06 07 08 09 10   4 4 3 3 2 2 2 1 1 0 02 06 05 10 01 07 09 03 08 04 以上、Bテーブルの3行目の設定は人手による操作を無くしたいのですが、H(V)LOOKUP関数やIF文ではうまく処理できませんでした。 何方かお知恵を貸して頂けませんか? よろしくお願いいたします。

  • エクセルで作業グループと表示が出てきたのですが・・・

    エクセルを使用中に、急にオートフィルターや並べ替えなどがつかえなくなりました。 よく見てみると、画面には見慣れない作業グループなる文字が表示されていたのですが、どうすれば良いのでしょうか? 困ったことに、オートフィルターをかけた状態のままでオートフィルターがつかえなくなってしまっているので、入力したデータを見ることすらできなくて困っています。よろしくお願いします。

専門家に質問してみよう