![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.3ベストアンサー
- 回答日時:
No.1です。
前回回答の補足です。前回回答で投稿したI2セルに記述した数式の末尾に
・・・))=G2),H2)),2,2)),"")
という部分がありますが、これは数式の意味をご理解いただけると判ることなのですが、名前がすべて1文字である「ご質問者の例示の表」のために作成した数式です。
実際のメンバーすべてのお名前が1文字であることは、常識的には考えにくいので、その場合上記数式の末尾の数値はメンバーの最長の名前の文字数以上にしておけば安全です。「寿限無」でない限り20文字あれば十分だと思いますので、
・・・))=G2),H2)),2,20)),"")
に修正すれば実際の場面で使用できると思います。
No.4
- 回答日時:
No3です。
補足を投稿したのですが、投稿番号を間違えて「No.2です」と書くべきところ、「No.1です」と書いてしましました。
ご質問者さん、No.1の中山あさん、大変失礼をいたしました。
訂正してお詫び申し上げます。
No.2
- 回答日時:
No.1さんのご指摘のとおり、VBAで処理すべき内容だと思います。
ただ、ご質問者がVBAを扱うレベルにないとのことなので、無理やり関数で処理する方法を考えてみました。
とりあえず、表の大きさは最大でも300行程度のものだとします。
添付画像をご覧ください。
無理やりなので作業列を3列使用しています。作業列の場所はどこでもよいのですが、一応「並び替え結果」を表示する列の左側に3列挿入することにしています。
作業列1(添付画像F列)のF2セルに
=IF(A2="",A3,IF((A2<>"A")*((C2="◎")+(C2="○")),LEFT(ADDRESS(1,COLUMN(INDIRECT(A2&"1"))-1,4),1),A2))&IF(C2=""," ",C2)&B2
という数式を記述して下方向へコピーし、昇格後のランクを表示できるようにしています。
作業列2(添付画像G列)のG2セルに
=IF(TRIM(F2)<>"",AGGREGATE(15,6,CODE(LEFT($F$2:$F$300,1)),ROW(A1)),"")
という数式を記述して下方向へコピーし、それぞれのランクを文字コードに変換して、昇順に並べ変えています。
作業列3(添付画像H列)のH2セルに
=IF(G2<>"",COUNTIF($G$2:G2,G2),"")
という数式を記述して下方向へコピーし、ランクの表題とランクに属する人の数を合算した数を数えています。
「並び替え結果」を表示する列(添付画像I列)のI2セルに
=IFERROR(IF(MID(INDEX(F:F,AGGREGATE(15,6,ROW($F$2:$F$300)/(CODE(LEFT($F$2:$F$300,1))=G2),H2)),3,1)="",MID(INDEX(F:F,AGGREGATE(15,6,ROW($F$2:$F$300)/(CODE(LEFT($F$2:$F$300,1))=G2),H2)),1,1),MID(INDEX(F:F,AGGREGATE(15,6,ROW($F$2:$F$300)/(CODE(LEFT($F$2:$F$300,1))=G2),H2)),2,2)),"")
という数式を記述して下方向へコピーしています。
これは、各ランクの表題とランクに所属している人の人数の合計が判っているので、F列をG列のランクの文字コードの昇順かつH列の順番に表示するための数式です。
以上で並び替え完了ですが、作業列1~3は非表示にすることで、見映えをご質問者の提示されたものと同じにすることができます。
![「エクセルC列の○◎がついた人を、A列の区」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/3/142736_61965dc869f11/M.png)
この回答へのお礼
お礼日時:2021/11/20 14:07
VBAでなく、関数でもここまでつくられるgoomaniaさん、補足で次の質問をしましたが、この御礼をまずします。ありがとうございました。再度質問をUPします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数式のエラーについて
-
エクセル 入力すると自動でセル...
-
win10でexcel2003
-
Excelの警告について
-
複数のテキストファイルをexcel...
-
エクセルでファイルの最終更新...
-
エクセルのことで教えてくださ...
-
excel2003 マクロボタンが押せない
-
エクセルで入力すると隣のセル...
-
EXCELの散布図で日付が1900年に...
-
Excelの時刻の不思議
-
エクセルの数式バーのフォント...
-
エクセルの問題です。絶対値の...
-
Excelマクロで空白セルを詰めて...
-
エクセルマクロを教えてほしい...
-
Excelについて質問です。 A1タ...
-
Excelでの表の作り方
-
EXCELのような表を使っています...
-
エクセル シート表示
-
【マクロ】 IFERROR関数をマク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報
区分A~ を半角数字1~に変更可能です。
VBAとは、開発>マクロの記録あたりの事でしょうか。「Go! Go! エクセルマクロをはじめよう!」をたまに、見てましたけど、実際には、したことがありません。よろしくお願いいたします。
昨夜遅くと、今朝早くの補足補足、ありがとうございます。検証はまだできていませんが、補足です。添付画像のように、「並び替え」はF列だけ使用しますが、「次月用記入用紙」は「ほか1・ほか2」の「行ごと」情報もほしいのです。どうでしょうか。よろしくお願いします。
ADDRESS関数(A=65)・INDIRECT関数(絶対参照など)・(TRIM関数(スペース削除)など初めて調べる関数です。
すごい!!。作業2・3・並び替えはなんとか理解?ですが、作業1の昇格後のランク表示の関数が?いまいち理解できませんが、
ここまで、関数を教えていただいたのに申し訳ありませんが「次月可否記入用紙」もお願いします。