中小企業の働き方改革をサポート>>

Excelで複数の行・複数のセルの一括削除、一括編集の方法を教えて下さい。住所録の連名づくりに困っています。

Microsoft Office Excel 2007ですでに作成された住所録を、筆ぐるめVer.15へ外部読み込みをして年賀状の宛て名をつくって印刷したいと考えています。

Excelのデータは一人一人1行ずつで作られている為、このまま筆ぐるめで住所録をつくると同じ住所の家族の年賀状が複数枚できてしまう(父に1枚・娘に1枚・母に1枚、という風に)ので、同じ住所の宛先には連名にして1枚で出したいので、連名列を作り代表者の行に一家族分の連名をまとめる作業で手こずっています。

同じ行に1家族分のアドレスが入るように(1行に、代表者漢字氏名・母の名前・子の名前・子の名前2・郵便番号・住所、のように)したかったので、
現在は=RIGHT(B1,3)で、B列にある漢字氏名の後ろから3文字だけをC列、D列、E列に一つずつずらした名前が記入されている状態で、表の形としては、

【1行目】
A列:ヤマダ タロウ/B列:山田 太郎/C: 良子/D:由美子/E:本 松/F:〒/G:住所
【2行目】
A列:ヤマダ リョウコ/B列:山田 良子/C:由美子/D:本 松/E:本 竹/F:〒/G:住所
【3行目】
A列:ヤマダ ユミコ/B列:山田 由美子/C:本 松/D:本 竹/E:本 梅/F:〒/G:住所
【4行目】
A列:ヤマモト マツ/B列:山本 松/C:本 竹/D:本 梅/E:本 桜/F:〒/G:住所

という風になっていて、以下のようにしたいのです。

【1行目】
A列:ヤマダ タロウ/B列:山田 太郎/C:良子/D:由美子/E:/F:〒/G:住所
【2行目】
A列:ヤマモト マツ/B列:山本 松/C:竹/D:梅/E:/桜F:〒/G:住所

≪1≫連名にした家族の行は不要なので行自体を削除したい。
≪2≫氏名の後ろから3文字をコピーしているので「 良子」のように半角スペースが入っているものや、「本 竹」のように1文字の名前のため苗字の一部まで入っているものは、その部分を削除して氏名のみにしたい。
≪3≫1行目E列のように、別の家族の名前まで入ってしまっていたり、連名のいらない人の名前を削除したい。(家族によって、連名が3ついるところもあれば、2つでよかったり、全く連名不要の人もいるので…)

これを地道に一つ一つセルを選択して削除していく以外に何か能率のいい方法はないでしょうか?

名簿が何千件とあるので一つずつこの作業をすると膨大な時間がかかる為、少しでも効率的な作業があれば教えていただきたいのです。

前回の質問で、親切な回答者様から「マクロを使えば」と言っていただきましたが、エクセルをそこそこしか使えない(単純な計算やグラフの作成程度)為、どのようにすれば良いかわかりません。

何かアドバイス、ご享受、していただければと思います。
どうか、宜しくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (11件中11~11件)

>Excelのデータは一人一人1行ずつで作られている為、このまま筆ぐるめで住所録をつくると同じ住所の家族の年賀状が複数枚できてしまう(父に1枚・娘に1枚・母に1枚、という風に)ので、同じ住所の宛先には連名にして1枚で出したいので、連名列を作り代表者の行に一家族分の連名をまとめる作業で手こずっています。



関数で処理をしたデータで例示するのではなく、上記の元のエクセルファイルのデータの内容とレイアウトを提示されて、それをどのようなレイアウトにしたいのかを説明されたほうが、皆さんから的確な回答が寄せられると思います。

この回答への補足

ご回答ありがとうございます。
すみません、私の勉強不足で、「元のエクセルファイルのデータの内容とレイアウトを提示されて、それをどのようなレイアウトにしたいのかを説明」をおっしゃっている部分がよく分からず…どのようなものを提示すれば良いでしょうか?
一応、エクセルに現在表記されているものと、結果どうしたいかを記入例であげさせていただいたのですが…
関数で処理したデータ、というのは…?
データの氏名を変えているだけで、上記の通りです。(本物の氏名・住所は個人情報ですので載せることができません)

補足日時:2010/11/24 13:39
    • good
    • 0
この回答へのお礼

今回はてこずらせてしまいすみませんでした;;
どのように書けば質問としてベストなのか、なんとなく理解できました。
ありがとうございました!

お礼日時:2010/11/26 16:53

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q複数のセル一括削除

エクセルでランダムに位置する セルのデーターを一括削除できるようにしたいのですが 初心者なので、マクロの登録の仕方もわかりません。 
 
 宜しくお願いします。

Aベストアンサー

データの「一括削除」とは「シートにある決まったセルの内容を削除する」ということなら、手で操作したとおりのマクロを自動的に作ることができます

メニューバーの「ツール」→「マクロ」→「新しいマクロの記録」 → マクロの名前を入力してOK
(画面上には「記録」と書かれた小さなボタンが表示される)

 このあとで手動操作で消したいセルのデータを消す。消したいセルを全て選んでデータを消す操作をして下さい。

「ツール」→「マクロ」→「記録終了」
これでマクロが作成されます。

マクロを実行するには
「ツール」→「マクロ」→「マクロ」 でマクロ名選択するか、Alt+F8を押下してください

QEXCELで複数行をまとめて選択する方法

EXCELで離れた複数の行を選択するとき、Ctrlキーを押しながら行いますが、誤って余計な行をクリックしてしまった場合、その前までに選択した行は選択したままで、誤って選択した行だけを選択から除外する方法はありませんか。

現在は1行誤っただけで、また最初からすべての行を選択し直しています。
このような非効率的な作業は腹立たしいだけなので、良い方法をご存知の方は是非ご教示ください。よろしくお願い致します。

Aベストアンサー

こんにちは

 1,3,5行目を選択した状態から5行目の選択を解除したいとします。
 アクティブセルはセルA5とします。

1.Shift+Home
→1,3行目とセルA5が選択された状態に
2.Shift+↑
3.Shift+↑
→1,3行目とA3:A5が選択された状態に
4.Shift+Tab
5.Shift+Tab
→セルA3がアクティブセルに
6.Shift+↑
7.Shift+↑

 以下のページもご参考になるのでは?

【エクセル技道場】-編集-選択範囲の一部解除
http://www2.odn.ne.jp/excel/waza/edit.html#SEC25

参考URL:http://www2.odn.ne.jp/excel/waza/edit.html#SEC25

Qexcel 複数行の削除

1    ○ ○ 建 材(株)
2〒111-0054○○市中央町4-14-36
3電0333(71)3333
4〔設 立〕平成12年9月
5〔営業種目〕生コン製造,砂利・砂,セメント,他
6     の販売
7〔資本金〕10,000千円     
8〔代表者〕山田太郎
9〔役 員〕(代)山田太郎(取)山田二郎(監)山 
10      田和子
11〔大株主〕山田太郎50%,山田二郎30%,山田二
12     郎,山田和子各10%
13〔取引銀行〕○○信金,??信金
14〔事業所〕(工場)○○市中央町4-14-36
15〔仕入先〕○○商事,丸々産業,
16〔販売先〕
17〔業 績〕(千円)
18 決算期    売上高   利 益 配当総額
1920年10月   470.200   △182    -
2021年10月    489,000   △200    -
2122年10月    448,000  △7,600    0
22〔格付概況〕C 永年の業歴かおるが、市況低迷
23 の影響により売上高は落ち込んでおり
24
25    丸々商会(株)
26〒1222-2222・・・・市・・・・
27〔設 立〕昭和61年7月
28〔営業種目〕一般貨物自動車運送業
29〔資本金〕25,000千円     
30〔代表者〕丸々一郎
31〔役 員〕(代会)丸々一(取)丸々保,丸々陽
32     子(監)丸々バツバツ
33〔大株主〕丸々一60%,丸々保,丸々陽
34     子
35〔取引銀行〕四菱東京,みずみ
36〔仕入先
37〔販売先〕山田運送,○運輸,丸々運輸,
38     ○○流通システム
39〔業 績〕(千円)
40 決算期    売上高   利 益 配当総額
4120年5月   450,000     -    -
4221年5月   430,000     一    -
4322年5月   420,000   3,000    -
44〔格付概況〕C 長引く不況による影響から取扱
45 高の減少が続いているが、運行管理強化などに
46 よって回復に全力を挙げてお‰あと一歩のと
47 ころ
48東京都(非上場)
492019
50               29-174343-9
51      (株)   ○ ○
52
53
54
55
56
57




1,25,51行は会社名

11行の大株主から24行の会社名の一つ手前までを削除
33行の大株虫から50行まで削除

このようなデーターが4万行まであります。

大株主から会社名の一つ手前までを一括で削除したいのですが
いい方法お願いします。

1    ○ ○ 建 材(株)
2〒111-0054○○市中央町4-14-36
3電0333(71)3333
4〔設 立〕平成12年9月
5〔営業種目〕生コン製造,砂利・砂,セメント,他
6     の販売
7〔資本金〕10,000千円     
8〔代表者〕山田太郎
9〔役 員〕(代)山田太郎(取)山田二郎(監)山 
10      田和子
11〔大株主〕山田太郎50%,山田二郎30%,山田二
12     郎,山田和子各10%
13〔取引銀行〕○○信金,??信金
14〔事業所〕(工場)○○市中央町4-14-36
15〔仕入先〕○○商事,丸々産業,
16〔販...続きを読む

Aベストアンサー

こんにちは!
VBAになってしまいますが、一例です。

条件として、削除したい行のはじめのセルに「大株主」という文字が入っていて
会社名セルには必ず「株」の文字が入っているとします。
尚、データはA1セルからあり、途中に空白がないという前提です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub 行削除() 'この行から
Dim i As Long, k As Long
Application.ScreenUpdating = False
Rows(1).Insert
Columns(1).Insert
Cells(1, 1) = "項目"
For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row
If InStr(Cells(i, 2), "大株主") > 0 Then
k = i + 1
Do Until InStr(Cells(k, 2), "株") > 0 Or Cells(k, 2) = ""
k = k + 1
Loop
Range(Cells(i, 1), Cells(k - 1, 1)) = 1
i = k
End If
Next i
Cells(1, 1).AutoFilter field:=1, Criteria1:="<>"
i = Cells(Rows.Count, 1).End(xlUp).Row
Rows(1 & ":" & i).Delete
Columns(1).Delete
ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = True
MsgBox "処理完了"
End Sub 'この行まで

※ 一旦マクロを実行すると元に戻せませんので、
別Sheetでマクロを試してみてください。m(_ _)m

こんにちは!
VBAになってしまいますが、一例です。

条件として、削除したい行のはじめのセルに「大株主」という文字が入っていて
会社名セルには必ず「株」の文字が入っているとします。
尚、データはA1セルからあり、途中に空白がないという前提です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub 行削除() 'この行から
Dim i As Long, k As Long...続きを読む

Qエクセルで特定の行を削除したいのですが。

エクセルで特定の行を一発で削除したいのですが、やり方がわかりません。
どなたか詳しい方お教えいただけませんでしょうか?

やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロとかを使うのでしょうか?
宜しくお願いいたします。

Aベストアンサー

マクロを使う別の方法です。
XXXの部分を特定の文字に置きかえて実行してください。
また、「特定の文字があれば」というのが、その文字列を含む、というのでなくセルの値がその文字列ならば、というのであれば、LookAt:=xlPart の部分を LookAt:=xlWhole に書き換えてください。

Sub DelLines()
  Dim R As Range
  Do
    Set R = ActiveSheet.Range("B:B").Find(What:="XXX", LookAt:=xlPart)
    If R Is Nothing Then Exit Sub
    R.EntireRow.Delete
  Loop
End Sub

QExcel VBA 起点からの複数行一括削除

Excel VBAで末端までだと4万行くらいのデータを整理するものを組んで
います。初心者ゆえどなたかお詳しい方の知恵を拝借いたしたく。

元となるデータは15行が一塊であるデータブロックで構成されており、
14行目には"END"の文字があり、15行目には必ず空白行があります。
この15行のデータブロックが延々4万行繰り返しの形で存在しています。
どのデータブロックか判別できる数字が入っているのは1行目のE列
です。

データブロック一行目E列に含まれる特定の語句(IDNo.)を検索し、これを
起点として空白行までの15行一塊のデータブロックをまとめて削除でき
るものを作成しようと思ったのですが、一行ずつ削除するところまでしか
自力では分からず、これ以降どのように追記すれば良いか見当がつか
ない状態です。よろしくお願いします。

元データ
    A    B   C    D    E     F   G
1   aaa   bbb  ccc  ddd   (IDNo.)  fff  ggg
2   111  222  333  444   555   666  777
(略)
14 END
15 (空白行)
16  AAA  BBB  CCC DDD  (IDNo.) FFF GGG
(略)
29 END
30 (空白行)


以下 検索したもの+自分で追記してみた部分です。

Sub 特定ID削除()
With ActiveWorkbook.ActiveSheet
Const startrow As String = "1" '開始行を指定
Const col As String = "E" '識別文字が入力されている列
Dim Idx As Long
Dim keyWord
keyWord = Application.InputBox("削除対象の文字列を指定", Type:=2)
If TypeName(keyWord) <> "Boolean" And Len(keyWord) > 0 Then
For Idx = .Cells(65536, col).End(xlUp).Row To startrow Step -1
If InStr(.Cells(Idx, col).Value, keyWord) > 0 Then
' If Application.CountIf(Rows(Idx), "*" & keyWord & "*") > 0 Then
.Rows(Idx).Delete
End If
Next Idx
End If
End With
End Sub

Excel VBAで末端までだと4万行くらいのデータを整理するものを組んで
います。初心者ゆえどなたかお詳しい方の知恵を拝借いたしたく。

元となるデータは15行が一塊であるデータブロックで構成されており、
14行目には"END"の文字があり、15行目には必ず空白行があります。
この15行のデータブロックが延々4万行繰り返しの形で存在しています。
どのデータブロックか判別できる数字が入っているのは1行目のE列
です。

データブロック一行目E列に含まれる特定の語句(IDNo.)を検索し、これを
起点として空白行まで...続きを読む

Aベストアンサー

再三すみません。
1点勘違いしておりましたので、修正させてください。

> 3.TypeName(keyWord) <> "Boolean" And Len(keyWord) > 0
> 空白の入力や、キャンセルボタンが押された場合を除く分岐だと思いますが、
> シンプルに、戻り値が空白か否か判断すれば大丈夫です。

と書きましたが、キャンセルボタンが押された場合の処理を
除外するのを忘れておりました。
ご質問者様の書き方でも大丈夫ですし、
keyWord <> "" And keyWord <> "False" のように書いてもOKです。

大変失礼致しました。

--------------------------------------------------
Sub 特定ID削除()
Const blockNum As Integer = 15 ' 1ブロックの行数
Const col As String = "E" ' 識別文字が入力されている列
Const startRow As Long = 1 ' 開始行
Dim endRow As Long ' 終了行
Dim Idx As Long
Dim keyWord

' 最終データブロックの先頭行を取得
endRow = Cells.SpecialCells(xlLastCell).Row - blockNum + 2

' 削除対象文字列を取得
keyWord = Application.InputBox("削除対象の文字列を指定", Type:=2)

' 検索&削除処理
If keyWord <> "" And keyWord <> "False" Then
For Idx = endRow To startRow Step -blockNum
If InStr(Cells(Idx, col).Value, keyWord) > 0 Then
Range(Idx & ":" & Idx + blockNum - 1).Delete
Exit For '削除するブロックが1つだけの場合
End If
Next Idx
End If
End Sub
--------------------------------------------------

再三すみません。
1点勘違いしておりましたので、修正させてください。

> 3.TypeName(keyWord) <> "Boolean" And Len(keyWord) > 0
> 空白の入力や、キャンセルボタンが押された場合を除く分岐だと思いますが、
> シンプルに、戻り値が空白か否か判断すれば大丈夫です。

と書きましたが、キャンセルボタンが押された場合の処理を
除外するのを忘れておりました。
ご質問者様の書き方でも大丈夫ですし、
keyWord <> "" And keyWord <> "False" のように書いてもOKです。

大変失礼致しました。

-------------...続きを読む

Qエクセルである行以下全部を削除する方法

エクセルである行(もしくは列)以下を全部 削除したいのですが、簡単な方法があれば教えてください。選択して削除するにはあまりにも長く、スクロールしているうちに別のところを指定してしまったりして困っております、
MS office 97 を使用しています、

Aベストアンサー

こんにちは

> 列や行を削除しても空白の行がまた、入ってしまうのはどうやればよいのでしょうか?

 列や行を非表示にするのは、いかがでしょうか?
 例えば、11行目以降を非表示にするには以下の手順です。

1.11行目のセルのどれかを選択
2.Ctrl+Shift+↓
3.メニュー[書式]-[行]-[表示しない]

 11行目以降を再び表示させるには、

1.Ctrl+A(または全セル選択ボタンをクリック)
2.メニュー[書式]-[行]-[再表示]

参考URL:http://www2.odn.ne.jp/excel/

QVBA、Excelにて複数行をまとめて削除したいのですが

Dim gyou1 As Range, gyou2 As Range

gyou1 = 4
gyou2 = 62

For data = 1 To 1440

Rows("gyou1:gyou2").Select
Selection.Delete Shift:=xlUp

gyou1 = gyou1 + 1
gyou2 = gyou2 + 1

Next data

複数行をまとめて削除したいのですが、型が一致しないとのエラーで上手く実行できません。
どうすればいいでしょうか?

Aベストアンサー

> Dim gyou1 As Range, gyou2 As Range
> gyou1 = 4
> gyou2 = 62

変数の宣言がおかしいのでは?

> Rows("gyou1:gyou2").Select

変数は""でくくってはダメです。
Rows(gyou1 & ":" & gyou2).Select

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

Qマクロによる複数行の削除方法を教えて下さい

エクセル2010を使用しております。

初歩の質問になってしまいますが回答よろしくお願いいたします。

A行にデータが約1000件入っていて、これを4行ずつ削除したいと思っています。
形としては最終行から不要な4行(セルに入っている文字数字はランダムです)
を削除して2列上に動いて、A2まで削除したら止まる
でいいと思っているのですが、複数行指定から躓いております。
よろしければコードを教えて頂けませんかお願い致します。

方法がわからない現在は現在は2~5行指定デリート 7~10指定デリート… で手動でやっております(汗)

  A
1  必要
2   不要
3   不要
4   不要
5   不要
6  必要
7   不要
8   不要
9   不要
10  不要
11 必要



726 必要
727  不要
728  不要
729  不要
730  不要
731 必要
732  不要
733  不要
734  不要
735  不要

Aベストアンサー

今の操作を具体化すれば
2~5行目を削除
3~6行目を削除
の繰り返しですよね

ならば
Sub ボタン1_Click()
i = 2
Do While Range("A" & i).Value <> ""
Rows(i & ":" & i + 3).Delete Shift:=xlUp
i = i + 1
Loop
End Sub
でよろしいかと

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。


人気Q&Aランキング

おすすめ情報