人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのマクロについての質問です。

名前、回数が並んでいる列を名前ごとに、回数の降順で
ならべて、名前ごとに一番のところに ○をつけたいのです。
マクロでどう書くといいのでしょうか?

a 3
b 2
a 5
c 1
b 4
のようになっているのを
a 5 ○
a 3
b 4 ○
b 2
c 1 ○


●質問者: kaiketsu
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:エクセル マクロ 名前
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mook
●35ポイント

データが A:B列にあることを想定していますが、このような感じでしょうか。

Sub sortAndMarkTop()
 Columns("C").Clear
 
 Columns("A:B").Sort _
 key1:=Range("A1"), order1:=xlAscending, _
 key2:=Range("B1"), order2:=xlDescending

 Dim lastRow As Long
 lastRow = Range("A" & Rows.Count).End(xlUp).Row
 
 Range("C1").Value = "○"
 For r = 2 To lastRow
 If Cells(r, "A").Value <> Cells(r - 1, "A").Value Then
 Cells(r, "C").Value = "○"
 End If
 Next
End Sub

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_sort.html


2 ● jccrh1
●35ポイント

数式だけでできます。

 A B C
1 a 3 
2 b 2
3 a 5 ○
4 c 1 ○
5 b 4 ○

上記の表と仮定し

 C1は =IF(B1=MAX(IF($A$1:$A$6=A1,$B$1:$B$6,0)),"○","") と入力し
 最後に CTRL + SHIFT + ENTER を押下してください。
 見た目は前後に{ } がつきます。
  {=IF(B1=MAX(IF($A$1:$A$6=A1,$B$1:$B$6,0)),"○","")}

後はC2:C5に複写してください。

※必要なら降順に並べても良いですが、並べなくても良いです。

ダミーURL:http://q.hatena.ne.jp/1246079934

◎質問者からの返答

a 5 のみに ○がつきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ