No.1ベストアンサー
- 回答日時:
前提として、以下のようにします。
1.関数により、ご希望に近いものを作る。
2.既存の表の前に4列挿入する。
3.ランキングのシートと入力シートは、別とする。
4.ユーザーは99人以下とする。
ということで、A~D列までを計算用に使用させて頂きます。
E列をユーザー名、F列をランクとします。
A列に入力する関数
=if(f2="","",if(f2="A",1,if(f2="B",2,if(f2="C",3,""))))
これにより、ABCランクを1,2,3に変換させます。
B列に入力する関数
=if(a2="","",countif(a2:$a$2,a2))
これにより、ランクA,B,Cが何個目かを表示させます。
C列に入力する関数
=if(a2="","",a2*100+b2)
これにより、ランクAを100番台、Bを200番台、Cを300番台として連番を表示させます。
100人をこえる場合は「a2*1000+b2」 とでもして下さい。
D列に入力する関数
=if(a2="","",rank(c2,c2:c301,1))
これにより、C列の数字を小さい順に付番します。
A~Dの関数を下のセルに、コピーします。
シート2に目的の表を作るとします。
1行目を見出しとして、2行目から、データとします。
また、参照元をシート1とします。
A2セルに
=vlookup(row()-1,sheet1!$e$2:$f$300,2,0)
とするとAランク最初のユーザー名が表示されます。
以降は、表のフォーマットに合わせて、VLOOKUP文のパラメーターを調整して下さい。
なお、入力シートA~D列は、「非表示」にしておくと、邪魔にならないと思います。
また、
=if(iserror(vlookup(row()-1,sheet1!$e$2:$f$300,2,0),"",vlookup(row()-1,sheet1!$e$2:$f$300,2,0))
というふうに、エラー回避をさせると、より見やすくなるでしょう。
いかがでしょうか?
No.2
- 回答日時:
訂正
>また、
>
>=if(iserror(vlookup(row()-1,sheet1!$e$2:$f$300,2,0),"",vlookup(row()-1,sheet1!$e$2:$f$300,2,0))
>
>というふうに、エラー回避をさせると、より見やすくなる>でしょう。
これでは、カッコが足りませんでした。
>=if(iserror(vlookup(row()-1,sheet1!$e$2:$f$300,2,0)),"",vlookup(row()-1,sheet1!$e$2:$f$300,2,0))
と、iserror文のカッコ閉じを追加して下さい
No.3
- 回答日時:
ランクのセルが更新されたらソートすればよいと思います。
マクロは、ランクのsheetのchangeイベントプロシージャとして作成します。ソートするので、一応、以下を前提、制約があります。
1.見出しが1行目に1行ある。2行目以降をソート対象とする。
2.ランク順、ユーザー名順にソートする。このため、ユーザーを新規追加するとソートが実行さる。
3.同一ランクの同一名のユーザーがどの順になるかは、excelのソートのロジックに依存する。
マクロは…
Private Sub Worksheet_Change(ByVal Target As Range)
'ランク、ユーザー変更ならソート(昇順)
If ((Target.Column = 1) Or (Target.Column = 2)) Then
Range("a:b").Sort Key1:=Range("A2"), Order1:=xlAscending, _
Key2:=Range("B2"), Order2:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=True, _
Orientation:=xlTopToBottom, SortMethod:=xlStroke, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) エクセルで得点に対応する文字を求める 3 2023/05/31 09:18
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) エクセルの数式について(数値を探し出したいです。) 4 2023/04/18 16:35
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) エクセルの数式について教えてください。 7 2023/06/18 10:16
- SQL Server SQL Oracle serverにって質問です。 会社テーブルがあり、そのテーブルから 社員名、給 4 2022/05/21 12:22
- Excel(エクセル) ユーザー関数の自動計算(excel2003) 1 2023/02/06 06:46
- Excel(エクセル) スプレッドシート 関数で集計したい 2 2023/01/08 17:09
- Excel(エクセル) 現時点の年齢を算出して、その年齢と一致したセルを色付けしたい。 4 2022/06/23 17:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
【関数】先頭だけにある、半角...
-
エクセル 白黒印刷で白線を印刷...
-
Excelのチェックボックスの使い...
-
【関数】適切な文字数の数字を...
-
Excelのpivotについて質問です
-
Excel ピボットテーブルで日付...
-
LOOKUP関数を使えばいいのでし...
-
エクセル関数を教えてください
-
エクセルのセルに同じ大きさの...
-
UNIQUE関数が使えないバージョ...
-
excelの不要な行の削除ができな...
-
エクセルで「-0.0」と表示さ...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの関数について教えて...
-
Aというブックの1というシート...
-
【マクロ】シート名を取得する...
-
VBA Private Sub Worksheet_Cha...
-
VBA、Excelのworkbook.open に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報