- ベストアンサー
エクセルでグループを決めて並べ替えできるか
- エクセルでグループを決めて並べ替えをする方法はありますか?
- エクセルで振り仮名によるグループ分けをしている場合、代表者のあいうえお順に並べ替えることは可能でしょうか?
- エクセルで名前とコードが入力されている場合、グループごとに代表者を基準にしてあいうえお順に並べ替えることはできますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Fig-1 A B C D E 1 CODE NAME PHONETIC TEMP1 TEMP2 2 001a 山田太郎 やまだたろう 001 a 3 001b 山田花子 やまだはなこ 001 b 4 001c 岡本一郎 おかもといちろう 001 c 5 002a 鈴木健二 すずきけんじ 002 a 6 002b 佐藤優子 さとうゆうこ 002 b 7 003a 宮元博 みやもとひろし 003 a 8 004a 田中ゆうじ たなかゆうじ 004 a 9 004b 原 桂子 はら けいこ 004 b 10 005a 伊藤裕美 いとうゆみ 005 a 11 005b 内田芳樹 うちだよしき 005 b 12 D2: =LEFT(A2,3) E2: =RIGHT(A2,1) 範囲 D2:E2 を下方に複写 [オートフィルタ]を設定して、E列を“a”で抽出した結果が Fig-2 です。 Fig-2 A B C D E 1 CODE▼ NAME▼ PHONETIC▼ TEMP1▼ TEMP2▼ 2 001a 山田太郎 やまだたろう 001 a 5 002a 鈴木健二 すずきけんじ 002 a 7 003a 宮元博 みやもとひろし 003 a 8 004a 田中ゆうじ たなかゆうじ 004 a 10 005a 伊藤裕美 いとうゆみ 005 a [オートフィルタ]を掛けたまま(Fig-2の状態)で全範囲 A1:E10 を、C列の昇順で[並べ替え]えます。さらに、セル F2 に式 =SUBTOTAL(3,E$2:E2) を入力して、此れを下方に複写した結果が Fig-3 です。 Fig-3 A B C D E F 1 CODE▼ NAME▼ PHONETIC▼ TEMP1▼ TEMP2▼ TEMP3 2 005a 伊藤裕美 いとうゆみ 005 a 1 5 002a 鈴木健二 すずきけんじ 002 a 2 7 004a 田中ゆうじ たなかゆうじ 004 a 3 8 003a 宮元博 みやもとひろし 003 a 4 10 001a 山田太郎 やまだたろう 001 a 5 [オートフィルタ]を掛けたまま(Fig-3の状態)で範囲 D2:F10 を選択して、此れを何処かの空き地(例えばセル K1)に[値の貼り付け]た結果を Fig-4 に示します。 Fig-4 K L M 1 005 a 1 2 002 a 2 3 004 a 3 4 003 a 4 5 001 a 5 [オートフィルタ]を解除して、セル F2 に式 =VLOOKUP(D2,K$1:M$5,3,FALSE)+(E2<>"a")*ROW()/10000 を上書き入力して、此れを下方に複写した結果が Fig-4 です。 Fig-4 A B C D E F 1 CODE NAME PHONETIC TEMP1 TEMP2 TEMP3 2 005a 伊藤裕美 いとうゆみ 005 a 1 3 001b 山田花子 やまだはなこ 001 b 5.0003 4 001c 岡本一郎 おかもといちろう 001 c 5.0004 5 002a 鈴木健二 すずきけんじ 002 a 2 6 002b 佐藤優子 さとうゆうこ 002 b 2.0006 7 004a 田中ゆうじ たなかゆうじ 004 a 3 8 003a 宮元博 みやもとひろし 003 a 4 9 004b 原 桂子 はら けいこ 004 b 3.0009 10 001a 山田太郎 やまだたろう 001 a 5 11 005b 内田芳樹 うちだよしき 005 b 1.0011 12 全範囲 A1:F11 を、F列の昇順で[並べ替え]えた結果が Fig-5 です。 Fig-5 A B C D E F 1 CODE NAME PHONETIC TEMP1 TEMP2 TEMP3 2 005a 伊藤裕美 いとうゆみ 005 a 1 3 005b 内田芳樹 うちだよしき 005 b 1.0003 4 002a 鈴木健二 すずきけんじ 002 a 2 5 002b 佐藤優子 さとうゆうこ 002 b 2.0005 6 004a 田中ゆうじ たなかゆうじ 004 a 3 7 004b 原 桂子 はら けいこ 004 b 3.0007 8 003a 宮元博 みやもとひろし 003 a 4 9 001a 山田太郎 やまだたろう 001 a 5 10 001b 山田花子 やまだはなこ 001 b 5.001 11 001c 岡本一郎 おかもといちろう 001 c 5.0011 12
その他の回答 (2)
- char_cat
- ベストアンサー率45% (22/48)
マクロでやると出来そうです。 ーーーーーーーーーーーーーーーーーーーーーーーー Sub 並べ替え() Dim データ(9, 2) データ数 = 10 コード桁 = 3 リーダーの印 = "a" Sheets("Sheet1").Select Range("A1").Select For I = 0 To データ数 - 1 データ(I, 0) = Cells(I + 1, 1) データ(I, 1) = Cells(I + 1, 2) データ(I, 2) = Cells(I + 1, 3) Next I Sheets("Sheet2").Select Range("A1").Select For I = 0 To データ数 - 1 If Right(データ(I, 0), 1) = リーダーの印 Then Selection = データ(I, 0) ActiveCell.Offset(0, 1).Range("A1") = データ(I, 1) ActiveCell.Offset(0, 2).Range("A1") = データ(I, 2) ActiveCell.Offset(1, 0).Range("A1").Select End If Next I Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin Range("A1").Select For J = 0 To データ数 - 1 比較データ = Selection For I = 0 To データ数 - 1 If データ(I, 0) <> 比較データ And Left(データ(I, 0), コード桁) = Left(比較データ, コード桁) Then ActiveCell.Offset(1, 0).Range("A1:C1").Select Selection.Insert Shift:=xlDown ActiveCell.Select Selection = データ(I, 0) ActiveCell.Offset(0, 1).Range("A1") = データ(I, 1) ActiveCell.Offset(0, 2).Range("A1") = データ(I, 2) データ(I, 0) = "" データ(I, 1) = "" データ(I, 2) = "" End If Next I ActiveCell.Offset(1, 0).Range("A1").Select Next J End Sub ーーーーーーーーーーーーーーーーーーーーーーーーーー このマクロは10名のデータを処理します。 グループの数字の文字数は3桁で揃っている必要があります。 リーダーの印はa(半角の小文字a)です。 A列にコード、B列に名前、C列に振り仮名です。 Sheet1にタイトル行なしで、データを置き、 Sheet2に並べ替えたデータを落とし込みます。 人数分で処理するには、Dim データ(9, 2)の 9のところを人数マイナス1の数字に置き換えてください。 データ数 = 10 (この人数を変更してください。) 必要があれば以下も修正 コード桁 = 3 リーダーの印 = "a" 一度試してみてください。10人分では上手く出来ました。 2000人で上手くいくか保障は出来ませんけど・・・。(^^;
お礼
ありがとうございます。 正直マクロはよく分からないのです・・・ 使ったことも無くて・・ マクロ少し勉強して、今度試して見ます!! 折角の貴重なご意見を試すことができなくて申し訳ないです。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 その並べ替えの規則が見えてきません。 >あいうえお順に関係なく同じグループの「a」の人にくっ付いてくるようにしたい たとえば、以下のようにして、タイトル行を振っておいて、 コード 名前 ふりがな コード1 コード1のところに、 =MID(A2,1,LEN(A2)-1)+(123-CODE(RIGHT(A2,1)))/100 このような数式を入れれば、 001a 山田太郎 やまだたろう 1.26 001b 山田花子 やまだはなこ 1.25 となります。 データ-並べ替え 最優先されるキー コード1 降順 2番目に優先されるキーで、 ふりがな 昇順 とすれば、それに近くなります。 ただ、コードは、5 の次に、2 が来ることはありえません。 あくまでも、5, 4, 3, 2, 1 の序列は変わりません。 なお、末尾字は、a,b,c, 小文字であることを前提としています。また、26個までです。
お礼
お答えいただきありがとうございます。 試してみましたが私の思い描いたものとは少し異なりました。 説明が下手で申し訳ないです。 今後もよろしくお願いします。
お礼
ありがとうございます。 なるほど、こういうやり方があるのですね。 まさに、求めていたものです。 うまくいきました!! 今後もよろしくお願いします!