エクセルでグループを決めて並べ替えできるか
- エクセルでグループを決めて並べ替えをする方法はありますか?
- エクセルで振り仮名によるグループ分けをしている場合、代表者のあいうえお順に並べ替えることは可能でしょうか?
- エクセルで名前とコードが入力されている場合、グループごとに代表者を基準にしてあいうえお順に並べ替えることはできますか?
- ベストアンサー
エクセルでグループを決めて並べ替えできるか
こんにちは、エクセルで以下のように入力している場合、 同じコードの人ををグループと考えて、その代表者のあいうえお順 で並べ替えをする方法はありますでしょうか?? 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」の人にくっ付いてくるようにしたいのですが・・・ なにか方法があれば、どうかよろしくお願いします!
- miyu1980
- お礼率64% (29/45)
- オフィス系ソフト
- 回答数3
- ありがとう数6
- みんなの回答 (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個までです。
お礼
お答えいただきありがとうございます。 試してみましたが私の思い描いたものとは少し異なりました。 説明が下手で申し訳ないです。 今後もよろしくお願いします。
関連するQ&A
- Excelについて
担当者名 担当者コード 施設名 施設コード 納入日 数量 Aさん 10 たなか 1234 7/1 5 Bさん 11 さとう 2345 7/1 3 Cさん 12 すずき 3456 7/1 2 Aさん 10 たなか 4567 7/1 7 Dさん 13 いとう 5678 7/1 4 Dさん 13 いとう 6789 7/1 23 Cさん 12 すずき 7890 7/1 5 Bさん 11 なかだ 8901 7/1 6 という感じで1ヶ月分のデータがあります。(350件ほど) それを・・・ 担当者 施設名 7/1 7/2 7/3 7/4・・・ Aさん たなか 12 Bさん さとう 3 Bさん なかだ 6 Cさん すずき 7 Dさん いとう 27 というようにカレンダー方式で集計したいのです。 同じ日に同じ施設名が何回も出てきたりするのですが、うまく集計できる方法はないでしょうか? 宜しくお願い致します。
- ベストアンサー
- その他(インターネット・Webサービス)
- エクセルでの順位づけ
こんにちは 下のような表で、C列に順位をつけて、順位を出すのではなく、 名前を表示したい場合(5行目から7行目)は、どうしたらいいのか困っています。 この関数ならできるというのがありましたら、教えてください。 よろしくお願いします。 A列 B列 C列 (名前) (点) (順位) 1行目 いちろう 40 2 2行目 じろう 30 3 3行目 はなこ 50 1 5行目 第1位 はなこ 6行目 第2位 いちろう 7行目 第3位 じろう
- ベストアンサー
- オフィス系ソフト
- エクセルでグループ分け
お知恵を貸してくださいよろしくお願いします。 A:グループ名 B:性別 C:名前 が100人分横で入っています。 それを、グループごとに分けて、縦の一覧にしたいのです。 A B C 1 A 男 佐藤 2 C 女 山田 3 B 女 田中 4 A 女 鈴木 ↓(別シートに) Aグループ Bグループ Cグループ 1 男 佐藤 女 田中 女 山田 2 女 鈴木 3 4 このように抽出して、並び替えることを関数をつかってできないでしょうか。よろしくご教示ください。
- ベストアンサー
- オフィス系ソフト
- エクセルでこんな表を作成したいのですが。。。
ちょっと教えて頂きたいのですが、エクセルで 下記のような表を作成したいのですが、 関数などを使ってうまくできればと思っております。 (名前は架空の人物ということでお願いします。。。) 【データ1】 A B 1 あべしんぞう 外務大臣 2 こいずみじゅんいちろう 環境庁長官 3 ふくだたけお 官房長長官 というデータがあります。 もう1つ別のシートで 【データ2】 A B 1 こいずみじゅんいちろう 空白 2 たなかまきこ 空白 3 おざわいちろう 空白 4 ふくだたけお 空白 5 のだせいこ 空白 というデータがあったとします。 【データ2】のBのA1を参照して、空白部分に、 【データ1】から検索してくるようにして、B1に 「環境庁長官」というようなデータを表示させたい場合、 どのような関数を使えばいいか教えていただけいますでしょうか。 お手数ですが、よろしくお願いします。 VLOOKUPを使ってみたのですが、 うまくできませんでした。。。
- ベストアンサー
- オフィス系ソフト
- エクセル・1つのセルに入った漢字(カナ)の分け方
エクセルにお強い方、教えてください>< A1のセルに、 山田 花子(ヤマダ ハナコ) とあるとします。 私は B1のセルに 山田 花子 C1のセルに (ヤマダ ハナコ) と、分けてデータ化させたいのですが、 どのようにマクロを組めばよいでしょうか? また、分け終わったC1の(ヤマダ ハナコ)に 置換を使って( )をとって、 カナ を かな に直すため、 PHONETICと書式のふりがな機能を使って直しても データにエラーは起きずに処理できるでしょうか? 最終的なデータとして A1セル→山田 花子(やまだ はなこ) B1セル→山田 花子 C1セル→やまだ はなこ としたいのです。 ご存知の方いらっしゃいましたら、教えてください。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルの表の合体
2つの表A,Bがあります。AとBは同じフィールド名を持っています。 Aが持つIDとBが持つIDが重複する場合,BのレコードをAに上書きし,重複しない場合はそれぞれのレコードを用いて新しい表Cを作りたいのですが,方法がわかりません。 どなたかご教授お願いいたします。 例) A表 ID,苗字,名前 0,佐藤,一郎 1,田中,太郎 2,山田,翔太 3,上田,大作 5,加藤,正和 B表 ID,苗字,名前 0,宮元,賢治 1,田中,太郎 2,山田,翔太 4,山下,謙一 5,上山,浩二 C表 ID,苗字,名前 0,宮元,賢治 1,田中,太郎 2,山田,翔太 3,上田,大作 4,山下,謙一 5,上山,浩二
- ベストアンサー
- その他MS Office製品
- VBAエクセル 文字の一部を置き換える方法
エクセル2003を使っています。 エクセルマクロで b6セルに名前が入力されています。その名前の2文字目を●に置き換えたいです。 鈴木 花子→鈴● 花子 星 光子→星● 光子 すずき はなこ→すず● はなこ ほし みつこ→ほし● みつこ (1)シートが100枚くらいありまして、シート名に”届”という文字が含まれているシートのb6セルを置き換える (2)a6に名前のかなが入力されているので、そこも3文字目、4文字目を●に置き換える というマクロを教えてください。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- あるセルの文字列が条件で、あるセルに色を設定するには?(2)
例えば、下のような表で A B C D 1 商品名 数量 名前 2 りんご 2 さとう 3 みかん 1 さとう 3 4 ぶどう 1 すずき 5 ばなな 2 すずき 3 6 みかん 3 たなか 7 りんご 2 たなか 8 ぶどう 2 たなか 4 「みかん」という商品名の時だけ、C列の重複している名前の一番下のセルに、黄色を設定したい場合は、どうしたらよいのでしょうか? つまり、セルC3とC8に色をかけたいのです。不可能でしょうか(-_-;)ちなみにD列は、重複している名前の一番下の行に合計が出る関数が入っています。一番下が難しいなら、みかんの商品があるうちの重複している名前(さとう・たなか)すべてに色がついてもかまいません。 どなたかいい方法があれば教えてください。よろしくお願いします(>_<)
- 締切済み
- その他(学問・教育)
- Excel)SUMPRODUCT関数で・・・
今まで困ったときにこちらで色々調べて答えを見出していた者です。 いつも参考にさせていただきありがとうございます。 ついに、うまいこと調べたいことが見つけ出せなくなってしまったため質問をさせてください。 ■基データ A B C D ――――――――――――――――――――― 1 氏名 形式 内容 金額 2 やまだ A りんご 50,000 3 さとう B バナナ 8,000 4 やまだ (A) みかん ▲30,000 5 すずき B もも 6,000 6 たなか C ぶどう 5,000 7 さとう (B) キウイ ▲4,000 というデータがあるとします。(明細みたいなもの) これを氏名(A列)と形式(B)列の条件で金額(D列)の合計を 別の表(集計表みたいなもの)に結果を出したいと思っています。 以前こちらで調べて、「SUMPRODUCT」関数が適していると思い 試してみました。そして結果も得られていました。 ですが、条件がちょっと複雑になってしまい、その関数での 対応が可能かどうかお知恵をお貸しいただきたいと思います。 または、別の方法(ピボットテーブルは対象外とさせてください) がありましたらご教示下さい。よろしくおねがいします。 【今までの条件設定(結果表示したいセルへの入力式)】 <氏名がやまだで形式がAの場合の金額の合計> =SUMPRODUCT(($A$2:$A$7="やまだ")*($B$2:$B$7="A"),$D$2:$D$7) ※さとう・すずき・たなかもそれぞれ求めます。 ※形式B・Cもそれぞれ求めます。(そして当初は形式に「()」の表示はありませんでした。) 【条件の変更によって結果を求めたいこと】 ■氏名別は変わらず、形式は「()」のあるなし関わらず [Aも(A)も同じ扱い]として金額の合計を求めたい。 上記の場合ですと、「やまだのA・(A)の合計値」と 「さとうのB・(B)の合計値」を算出する数式を知りたいです。 Bookの特徴ですが、 ・結果を出させるセルは同一シート内にあり、また印刷時は同一用紙に表示させる ・結果を出させるセルは見栄えの問題で結合させてある という具合です。。。 何かよい方法はありますでしょうか? 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- GROUP BYを使ったSELECT文の総件数を求める方法
【表A】 列1 | 列2 ----------- 山田 | A 山田 | A 田中 | A 田中 | B 田中 | C 木村 | A 木村 | A 木村 | B 上記で列1・列2をグループ化した件数を求めたいのですが、Oracleだと SELECT COUNT(*) FROM (SELECT 列1,列2 FROM 表A GROUP BY 列1,列2) というSQL文で結果「6」が出力されますが、SQLServerではエラーとなってしまいます。 SQLServerで実現したい場合はどのように記述すればよろしいでしょうか?
- ベストアンサー
- SQL Server
お礼
ありがとうございます。 なるほど、こういうやり方があるのですね。 まさに、求めていたものです。 うまくいきました!! 今後もよろしくお願いします!