質問させて頂きます。
日々の仕事の作業の中でExcelであるB列に前もって名前が入っています。
現状手打ちでB列の名前を見ながら1-1 1-2 名前が変わったら2-1 2-2 というように番号をふっています。時間短縮で何かいい方法はないでしょうか?(マクロなど)
ご回答お願い致します。
例を下に入れております。
A列 B列
1-1 山田太郎
1-2 山田太郎
2-1 佐藤和也
2-2 佐藤和也
3-1 吉田五郎
3-2 吉田五郎
3-3 吉田五郎
4-1 伊藤忠文
5-1 田口達也
6-1 東京世田谷区分譲
6-2 東京世田谷区分譲
6-3 東京世田谷区分譲
宜しくお願い致します。
No.1
- 回答日時:
こんばんは!
B列データはバラバラではなく、まとまって存在するという前提です。
一案です。
↓の画像のように作業用の列を設けてみてはどうでしょうか?
C2セルに
=IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,MAX(C$1:C1)+1,C1))
という数式を入れフィルハンドルでずぃ~~~!っとこれ以上データはない!というくらいまで下へコピーしておきます。
A2セルに
=IF(B2="","",C2&"-"&COUNTIF(B$2:B2,B2))
という数式を入れフィルハンドルで下へコピーすると
画像のような感じになります。
※ 作業列が目障りであれば遠く離れた列にするか
非表示にしてください。m(_ _)m
Tom04さん ご回答ありがとうございます‼
ご丁寧にありがとうございます。作業列を作る方法は思いつきませんでした。こちらの方法も使えますね。ありがとうございました。
No.2
- 回答日時:
データが2行目から開始している場合(A2=1-1,B2=山田太郎)
C2=C1+IF(B2=B1,0,1)
D2=D1+IF(B2=B1,1,0)
A2=C2&"-"&D2
としてACDのそれぞれの列を必要な行数コピー
C列:B列がその上のセルと一致すれば上のセルのまま、一致しなければそれに1加える。
D列:B列がその上のセルと一致すれば上のセルに1加える、一致しなければそのまま。
A列:C列の値とD列の値の間に-を入れてつなげる。
となっています。
No.4ベストアンサー
- 回答日時:
No.1です。
>時間短縮で何かいい方法はないでしょうか?(マクロなど)・・・
というコトですので、VBAでもやってみました。もちろん作業列は不要です。
シートモジュールにしてください。
Sub Sample1()
Dim i As Long, lastRow As Long, c As Range
Application.ScreenUpdating = False
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(Cells(2, "A"), Cells(lastRow, "A")).ClearContents
End If
Range("C:C").Insert
Range("B:B").AdvancedFilter Action:=xlFilterCopy, copytorange:=Range("C1"), unique:=True
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
Set c = Range("C:C").Find(what:=Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
With Cells(i, "A")
.NumberFormatLocal = "@"
.Value = c.Row - 1 & "-" & WorksheetFunction.CountIf(Range(Cells(2, "B"), Cells(i, "B")), Cells(i, "B"))
End With
Next i
Range("C:C").Delete
Application.ScreenUpdating = True
End Sub
※ データがバラバラでも出現順に「1-○」のような結果になります。
こんな感じではどうでしょうか?m(_ _)m
tom4 さん
この度は本当にありがとうございます。
作業場このマクロが一番やりやすいのでベストアンサーにさせて頂きました。ものすごく作業短縮になります。
ほんと感謝してます。
ありがとうございました!!
No.5
- 回答日時:
No.1・4です。
何度もごめんなさい。
書き忘れましたが、No.4のコードは
1行目が項目行でデータは2行目以降にある!という前提のコードです。
1行目からデータがある場合は当然コードが変わってきます。
手っ取り早いのは1行目に行を挿入し、項目行にしておき
ダミーで良いのでB1セルに何らかの項目名を入れておいてください。
そしてマクロ実行後1行目を削除してください。
どうも失礼しました。m(_ _)m
No.6
- 回答日時:
添付図参照
1.セル D1、E1 に数値 1 を入力
2.セル D2、E2 にそれぞれ式 =D1+(B1<>B2)、=IF(D2=D1,E1+1,1) を入力
範囲 D2:E2 を下方にズズーッとオートフィル
3.式 =D1&"-"&E1 を入力したセル A1 を下方にズズーッとオートフィル
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ファイルの書き込みについて教えて下さい。 1 2023/03/20 12:01
- Excel(エクセル) エクセルの参照について教えてください 1 2022/12/08 16:06
- その他(Microsoft Office) EXCELの1行を1枚の用紙にそれぞれ印刷したい。 3 2022/10/10 11:35
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- 政治 首相になってほしい 1位河野太郎 2位小泉進次郎 3位石破茂 4位高市早苗 5位山本太郎 5 2022/09/27 11:35
- 野球 高校野球の話 1 2022/08/18 09:54
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) LEFT関数で文字数を指定しないで取りだす方法 7 2023/06/30 09:49
- Excel(エクセル) EXCELでの複雑な複数条件について 4 2022/05/09 16:19
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
関連するカテゴリから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 フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報