エクセルの並び替えと置換の質問です。
指定されたデータのうちから、行単位で最大の値をもつセルのデータを、前方に或る文字列を挿入された値に置換するにはどうすればよいのでしょうか。
例えば 3*3の
A B C
1 9 0 2
2 5 5 4
3 0 8 6
というデータを選択して
A B C
1 M9 0 2
2 M5 M5 4
3 0 M8 6
という風に置換したいのです。
(行単位で一番大きい値の先頭にMを挿入する。)
実際には20列*300行以上あるのですが・・・。
どなたか、効率的な方法を教えていただけないでしょうか。(m_ _m)
No.3ベストアンサー
- 回答日時:
考え方は以下のようになるかと思います
1 1行1列目を最大値とする
2 最大値と1行2列目を比較し、大きい方を最大値とする
3 2を最終列まで繰り返し、1行目の最大値を求める
4 最大値と1行1列目を比較し、同じならば"M"を付加する
5 4を最終列まで繰り返し、1行目終了
6 1~5を最終行まで繰り返す
以上をマクロ化すると
'-------------------------------------------------------------
Sub test()
Dim 行, 列 As Integer
Dim 最大値 As Long
For 行 = 1 To Range("a1").End(xlDown).Row
最大値 = 0
For 列 = 1 To Range("a1").End(xlToRight).Column
If 最大値 < Cells(行, 列).Value Then 最大値 = Cells(行, 列).Value
Next 列
For 列 = 1 To Range("a1").End(xlToRight).Column
If 最大値 = Cells(行, 列).Value Then Cells(行, 列).Value = "M" & Cells(行, 列).Value
Next 列
Next 行
End Sub
'-------------------------------------------------------------
のようになります
エラー処理はしていません
参考になればどうぞ
No.2
- 回答日時:
[回答番号:No.1]に示した式中の
OFFSET(Sheet1!$A1,,,,20)
は、単に
Sheet1!$A1:$T1
でOKでした。(*^_^*)
それよりも、[条件付き書式]で「最大の値をもつセル」を着色して明示するのが良さそうな気がしています。
No.1
- 回答日時:
Sheet1 Sheet2
A B C D A B C
1 9 0 2 1 M9 0 2
2 5 5 4 2 M5 M5 4
3 0 8 6 3 0 M8 6
4 4
Sheet2!A1: =IF(Sheet1!A1=MAX(OFFSET(Sheet1!$A1,,,,20)),"M"&Sheet1!A1,Sheet1!A1)
または
Sheet2!A1: =IF(Sheet1!A1="","",IF(Sheet1!A1=MAX(OFFSET(Sheet1!$A1,,,,20)),"M"&Sheet1!A1,Sheet1!A1))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) エクセル シート内のボックスを縦並びから横並びに 7 2023/04/05 04:28
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) 【エクセル関数】アルファベットで以上だったらカウントする 4 2022/07/09 14:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
エクセル 文字数 多い順 並...
-
「B列が日曜の場合」C列に/...
-
エクセル(勝手に太字になる)
-
2つのエクセルのデータを同じよ...
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
Excelで半角の文字を含むセルを...
-
VBAで文字列を数値に変換したい
-
A列がない・・・A列が非表示に...
-
エクセル 同じ値を探して隣の...
-
Excel 別ファイルに自動的に反...
-
エクセルで一列おきに空白列を...
-
エクセル 時間帯の重複の有無
-
EXCELで 一桁の数値を二桁に
-
Excel、市から登録している住所...
-
Excel関数(通常はA列優先で、...
-
スマートな関数を教えて下さい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル 同じ値を探して隣の...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
エクセルの項目軸を左寄せにしたい
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
VBAで文字列を数値に変換したい
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
50人を数回、グループ分けする...
おすすめ情報