• ベストアンサー

エクセルで重複データを並べ替えたい

上手く説明できないので、具体例で・・・(たぶんどこかに同じ質問があるかと思うのですが、どうしても見つけられず、、、) 山田 フロア  50 岡田 倉庫  10 中村 フロア  40 山田 フロア  20 岡田 フロア  30 岡田 倉庫   20 中村 倉庫   20 中村 フロア  10 というデータを 岡田 倉庫   30 岡田 フロア  30 中村 倉庫   20 中村 フロア  50 山田 フロア  70 という風にまとめた挙げ句に左端の名前は昇順に並べたいと思っているのですが・・・ エクセルの関数で処理することはできるでしょうか どうぞよろしくお願い致します

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

  • ベストアンサー
  • yumi0215
  • ベストアンサー率30% (1335/4411)
回答No.11

ピボットテーブルを使われるのは問題がありますでしょうか? 並べ替えも表示方法も、もちろん計算や集計もお望みどおりの結果を出せるし、スライサーを利用すればその時に知りたい情報をすぐに出せるので便利だと思うのですが。 並べ替えも自動でやってくれるので関数でないといけない。という事ではないのでしたらいいと思いますよ。

yumi2007
質問者

お礼

ありがとうございます!ピポットテーブルでばっちりです! ・・・追加のご質問になって恐縮ですが、ピポットテーブル同士を更に集計することってできるのでしょうか? 上記データですと、複数ピポットテーブルにある 岡田 倉庫   30 のデータの更に合計を出す、ということです。 (30の他に40,50があったら、120という数値を出すということです) ・・・って、これは”このユーザに質問する”なのでしょうか? 他の方でもおわかりになればいいので、この場所でいいのでしょうか? ・・・使い方がわかってなくてすみません。。。

その他の回答 (13)

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.14

こんにちは 回答No.13の続きです 小計ツールは見つかりましたか?添付図を見て下さい。 3.マクロを実行する  これには何種類か方法があります 3-1.ボタンをsheets上に貼り付けてこれとマクロを関連付ける  省略します。興味があれば新しくQを立ち上げて下さい 3-2.作成したマクロを実行する  [開発タグ]→[マクロ]→[マクロを選択]→[実行] 3-3.Worksheetダブルクリックでマクロを起動  関数の中に別の関数を内包する入れ子のようにVBAでも入れ子が可能です  この入れ子をサブルーチンと呼びます  [開発]→[コード]→[左上のGeneralをWorksheet変更]  →[右上のSelectionChangeをBeforDublClickに変更]  →[PrivateSub…とEnd Subの空白行にマクロ名を行末の()抜きで記入]  →[右上角の✖でコードを閉じる]  マクロ名を集計処理()としたのが下記です --------------------------------------------------------------------  Option Explicit  Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 集計処理  End Sub --------------------------------------------------------------------+ 4.補足 小計、中計、合計と複数の計はグループの基準を順位の低い順に  処理します  このとき、最初の処理を除いて(チェックボックス チェック)現在の小計を全て置き換えるの✓を外します  尚、ファイルを保存するときに、ファイルの種類を「マクロを有効」として保存します ご健闘を

yumi2007
質問者

お礼

本当に何度もありがとうございます。感謝のしようがありません。。。 なんとか頑張っています。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.13

>ちょっと難しいですが、勉強してみます。  説明が足らずに申し訳ありません  回答のコードは私が記述したのではありません  Excelの「マクロ」とは  手作業の手順をVBAに記録してくれると理解して下さい 1.手作業は 1-1.表を氏名順、場所順に並べ替える   並び替えは順位の低い項目から高い項目へ   添付図参照(作業は[]内をクリックで進めます  [B2]→[データ]→[昇順]→[A2]→[昇順]  これで、期待通り並びます。  ただし表の中に空白のセルがあると分類はそこで止まります 1-2.小計をとる  →[小計:データタブの右端]  →[グループの基準、合計方法、集計フィールドを確認してOK] この手順でマクロ作成します。 2.マクロ作成 →[開発タブ]→[マクロの記録]→[マクロ名入力]→[1.の手順]→[記録終了]

yumi2007
質問者

お礼

なるほど!マクロの記録だったのですね!それならわかります! 何度もご丁寧にありがとうございます!

  • yumi0215
  • ベストアンサー率30% (1335/4411)
回答No.12

NO11です では、ピボットテーブルを使い、データの統合をご利用されてみてはいかがでしょうか。 リンクをしておけば更新もしくは開き直しをするたびに最新総計数が表示されます。

yumi2007
質問者

お礼

ピポットテーブルでデータの統合、ですね。ちょっと調べてみます! ・・・・全然無知なもので。。。 とりあえずデータの統合はわからなかったので、手作業でしましたが、ピポットテーブルは大変使いやすかったです! ありがとうございました!

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.10

誰も指摘していない様なので…… まず、名前を岡田→中村→山田の順にしたいと言う事は読み仮名のアイウエオ順に並び替えたいのだと思いますので、読み仮名のデータが無いと出来ません。 単にExcelの機能で名前を並び替える場合、読み仮名ではなくJIS漢字コード順になりますので、岡田→山田→中村 の順になります。 JIS漢字コード順で良ければ、作業セルを使用してセル関数で可能です。

yumi2007
質問者

お礼

ありがとうございます。勉強になりました。 今回の本データはアルファベットなので大丈夫かと思います。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.9

お早うございます。 マクロの記録で、並び替えから小計ツールを使いました。 Sub 報告書作成() '並び替え Range("A2:C9").Select ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A2:C9") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With '集計 データタグの右端アウトライン内の小計のツール Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _ Replace:=True, PageBreaks:=False, SummaryBelowData:=True End Sub

yumi2007
質問者

お礼

ありがとうございます!ちょっと難しいですが、勉強してみます。

回答No.8

【補足】なお、グループ毎に集計して昇順に並び替えるも出来る!

yumi2007
質問者

お礼

ありがとうございました。

回答No.7

【確認】添付図のようなことがやりたいのかな? 結果は、質問者と並びが違う。理由は、列1と列2を昇順で読み込んだから。 ? DSelect("SELECT DISTINCT F1, F2 FROM [Sheet4$A1:C8] ORDER BY F1, F2",,"|",,False) 中村;フロア|中村;倉庫|山田;フロア|岡田;フロア|岡田;倉庫 SQLを利用すれば、重複を省いてデータを読み込むのは関数一発。後は、どうでも料理可能。 ※SQLを使う気があれば、DSSelect()を紹介するが・・・

yumi2007
質問者

お礼

ありがとうございます。難易度が高いですが、少し勉強してみます!

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

Office365のエクセルでは、Sort関数が、入った。 https://support.office.com/ja-jp/article/sort-%E9%96%A2%E6%95%B0-22f63bd0-ccc8-492f-953d-c20e8e44b86c とうとうSortなどの機能が、エクセル関数の世界に、入ってきた。 VBAを使わなくても良い場面が増える。 ーー GoogleApsでも先行していた。 http://hito-ride.com/?p=3660 こういうソフトを使えば、この問題も考えやすくなるのでは。 ーー Excelピボットテーブルを使うのもどうかな。

yumi2007
質問者

お礼

ありがとうございました。 sort関数は知らなかったので、勉強してみます!

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

何がしたいのか? (1)データを並べ替えてひょうじしたいのか? (2)A,B列の2列を組み合わせた分類の係数を出したいのか。? (1)は並べ替え操作で、(2)は、SUMIFS関数でできるのではないか。 もっと、質問の表現法を勉強のこと。こんな個別の質問を解決する以前のことだと思う。  並べ替えは、エクセル関数では、まどろっこしい、不適な方法です。

yumi2007
質問者

お礼

わかりにくくてすみませんでした。 並べ替えは、エクセル関数では不向きなのですね。ありがとうございました。

回答No.4

回答No.3 です。 リンク先が間違っていました… https://dekiru.net/article/15709/ こちらで確認して下さい。

yumi2007
質問者

お礼

ありがとうございました!

関連するQ&A