![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは、エクセルで以下のように入力している場合、
同じコードの人ををグループと考えて、その代表者のあいうえお順
で並べ替えをする方法はありますでしょうか??
A列にコード、B列に名前、C列に振り仮名が振ってあります。
001、002などでグループ分けして、グループごとの
それぞれの人にabcを割り当てています。
合計で2000人くらいグループは400程度あります。
001a 山田太郎 やまだたろう
001b 山田花子 やまだはなこ
001c 岡本一郎 おかもといちろう
002a 鈴木健二 すずきけんじ
002b 佐藤優子 さとうゆうこ
003a 宮元博 みやもとひろし
004a 田中ゆうじ たなかゆうじ
004b 原 桂子 はら けいこ
005a 伊藤裕美 いとうゆみ
005b 内田芳樹 うちだよしき
現在はコード順に並んでいますが、これを代表者(aのついている人)
を基準にして、「あいうえを順」にならべかえることはできますか??
005a 伊藤裕美 いとうゆみ
005b 内田芳樹 うちだよしき
002a 鈴木健二 すずきけんじ
002b 佐藤優子 さとうゆうこ
004a 田中ゆうじ たなかゆうじ
004b 原 桂子 はら けいこ
003a 宮元博 みやもとひろし
001a 山田太郎 やまだたろう
001b 山田花子 やまだはなこ
001c 岡本一郎 おかもといちろう
と、このように並べ替えたいのですが・・
代表者(aの人)をあいうえお順に並べ替えると、bcd・・・の
人はあいうえお順に関係なく同じグループの「a」の人にくっ付いてくるようにしたいのですが・・・
なにか方法があれば、どうかよろしくお願いします!
No.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
ありがとうございます。
なるほど、こういうやり方があるのですね。
まさに、求めていたものです。
うまくいきました!!
今後もよろしくお願いします!
No.2
- 回答日時:
マクロでやると出来そうです。
ーーーーーーーーーーーーーーーーーーーーーーーー
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人で上手くいくか保障は出来ませんけど・・・。(^^;
ありがとうございます。
正直マクロはよく分からないのです・・・
使ったことも無くて・・
マクロ少し勉強して、今度試して見ます!!
折角の貴重なご意見を試すことができなくて申し訳ないです。
No.1
- 回答日時:
こんばんは。
その並べ替えの規則が見えてきません。
>あいうえお順に関係なく同じグループの「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個までです。
お答えいただきありがとうございます。
試してみましたが私の思い描いたものとは少し異なりました。
説明が下手で申し訳ないです。
今後もよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
パワーポイントの表
-
パワーポイント「スライドショ...
-
音声マークを一括非表示にしたい。
-
ExcelのグラフをPowerPointに貼...
-
【パワーポイントのフォントが...
-
PowerPointで、作成されたファ...
-
パワーポイントをプロンプター...
-
パワーポイントをメールで送信...
-
エクセル・パワーポイントなど...
-
PowerPointのアニメーションで...
-
PowerPointで、線を点滅した感...
-
パワーポイント。2つの矢印のワ...
-
PowerPoint ブロックされたアッ...
-
パワーポイントで説明しながら...
-
卒論発表があります。5分ほどの...
-
パワーポイント2019 図の透...
-
Webでの画像印刷について
-
PowerPointのスライドショウ実...
-
パワーポイントのエラーについ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
パワーポイント「スライドショ...
-
パワーポイントの表
-
音声マークを一括非表示にしたい。
-
PowerPointのスライドショウ実...
-
ExcelのグラフをPowerPointに貼...
-
【パワーポイントのフォントが...
-
PowerPointVBAでスライドマスタ...
-
PowerPointのアニメーションで...
-
PowerPointで、作成されたファ...
-
エクセル・パワーポイントなど...
-
PowerPointでスライドマスタの...
-
パワーポイントをメールで送信...
-
mac版無料パワーポイントでエラー
-
卒論発表があります。5分ほどの...
-
パワーポイントのエラーについ...
-
パワーポイント2019 図の透...
-
プレゼン時のポインター
-
パワーポイントのアニメーショ...
-
パワーポイントをプロンプター...
おすすめ情報