仕事で、データ整理を任されたのですが、量が膨大で途方に暮れています
おわかりになる方いましたら、教えてください。
現在
会社 勘定項目 売掛 買い掛け 備考
○○商事 備品購入 12000 50000 お得意様
○○建設 施設増設 30000 新設
(株)○○ 納品 20000 7/10入金
のようなデータがマスターシートに2000行ぐらいあります。
また、さらにデータを追加していく状態です。
これを、○○建設のデータだけを別シートにコピーするのは
http://kokodane.com/2013_waza_053.htm
こちらのサイト等を拝見し、できるようになったのですが、さらに追加された
○○建設のデータは手入力で、各シートに入力している状態です。
1ブックの中に、会社ごとが約10シート、勘定項目ごとが約10シート、備考ごとが約10シート、マスターシートがひとつあります。
これをマスターシートにあたらしく、○○建設のデータを一行挿入追加したら、
自動で、会社ごとの○○建設のページに自動で一行追加挿入され、入力されるようにというのは
できるのでしょうか?
また、それが備考欄が「新設」であれば、備考ごとの新設シートにも自動で追加されるようには
可能でしょうか?
専用ソフトを使ったほうがいいのは重々承知ですが、会社から許可が出ない状態です
申し訳ありませんが、アドバイスお願いできますでしょうか。
No.4ベストアンサー
- 回答日時:
こんばんは!
VBAになりますが、一例です。
>自動で、会社ごとの○○建設のページに自動で一行追加挿入され・・・
ユーザーフォームを使えば簡単にできると思いますが、
ユーザーフォーム作成そのものに手間がかかりますので、
単純に一旦データを消去し、オートフィルタで新たにコピー&ペーストする方法にしてみました。
>また、それが備考欄が「新設」であれば、備考ごとの新設シートにも自動で追加されるようには
の部分で「7/10入金」のような備考Sheetも必要なのかどうか判らないので
とりあえず「会社名」だけのシート操作をやってみました。
「マスター」シートはシート見出しの一番左側に配置しておいてください。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から//
Dim i As Long, k As Long, sN As String
Dim wS As Worksheet, myFlg As Boolean
Application.ScreenUpdating = False
Worksheets.Add after:=Worksheets(Worksheets.Count)
Set wS = Worksheets(Worksheets.Count)
With Worksheets("マスター") '←「マスター」は「マスターシート」の実際のSheet名に!★
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
sN = wS.Cells(i, "A")
For k = 2 To Worksheets.Count
If Worksheets(k).Name = sN Then
myFlg = True
Exit For
End If
Next k
If myFlg = False Then
Worksheets.Add after:=Worksheets(Worksheets.Count - 1)
Worksheets(Worksheets.Count - 1).Name = sN
End If
Worksheets(sN).Cells.Clear
With .Range("A1").CurrentRegion
.AutoFilter field:=1, Criteria1:=sN
.SpecialCells(xlCellTypeVisible).Copy Worksheets(sN).Range("A1")
End With
Worksheets(sN).Columns.AutoFit
myFlg = False
Next i
.AutoFilterMode = False
End With
Application.DisplayAlerts = False
wS.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub 'この行まで//
※ 最初のマクロ実行では会社名が存在しない場合、シートを追加するようにしています。
Sheet順が意図しない順になっているかもしれません。
その場合はSheet見出しのシートを移動させてください。
※ 「マスター」シートのデータ変更があるたびに
マクロを実行する必要があります。m(_ _)m
大変丁寧にありがとうございます。
ここまで作っていただき、本当にありがとうございます
昨日、他の回答者様からVBAを教えてもらい、やってみて
今回tom04さんがここまで作ってくれるのにどれだけ大変か、
全部ではないですが、わかりました
しかもここまで丁寧な説明、本当にうれしく思います。
これを使って、新規ブックで実際に実行してみて、うまく活用できるようにやってみます。
ありがとうございました。
No.3
- 回答日時:
まずは、発想を変えましょう。
マスターシートにひたすらデータを入力します。
抽出するためのシートは、一枚です。
仮に シート名 抽出
A B C D E
1 会社 勘定項目 売掛 買い掛け 備考
2○○建設
4
5 会社 勘定項目 売掛 買い掛け 備考
と云ったように、1行目に抽出する条件の項目
2行目に、抽出する 内容を記述する。
下の方5行目くらいに抽出したい項目
あとは、リボン データ 中ほどのフィルターの詳細設定
からフィルターオプションを使って希望のデータを抽出します。
http://www.eurus.dti.ne.jp/yoneyama/Excel/filter …
こちらに詳しく説明してあります。
マクロの記録で、自動化も出来ます。
勘定科目で抽出したければ、会社名を空白で、勘定科目の部分に
抽出する内容を入れて、フィルターオプションを実行
もちろん、組み合わせで抽出も可能です。
シートは3枚で済みます。
シートをたくさん作ると移動するだけでも大変でしょう。
2行目に入力したら、5行目以下にすぐにデータが抽出されたら
便利だと思いませんか。
ご返信ありがとうございます。
ですが、○○建設だけで100行以上ある状態ですので、ちょっとイメージがわきません。
お勧めいただいたサイト、ぱっと見では理解できなかったので
今日一日、読んでやってみたいと思います。
No.2
- 回答日時:
>こちらのサイト等を拝見し、できるようになったのですが
ならば、該当するデータの個数が変わった場合を判断し、
(当方、VBA苦手なので適当なセルに数式を入力しますが(データベース関数かな))
前の抽出データをすべて消して、抽出しなおせばよいのでは?
ご返答ありがとうござます
現状、入力した1行をコピーして、必要シートにペーストして作業しております
なにぶん、作業がたくさんなもので、、、
大体一日に、マスターシートに20ー30行ほど入力しており、それを約40シートに手入力で反映しております。
これを私程度の能力で、簡略できないものかと思いまして。
皆様のお返事を待ってる間にVBAをちらっと見てみて、例題サンプルをコピーしてやってみましたが、
大変難しいですね。
マクロも簡単なものだけやってみましたが、こちらは私のやり方が悪いのでしょうけども、ちょっと望んでるものとずれておりました。
読んでいただき、ご返答いただきありがとうございました。
No.1
- 回答日時:
>>これをマスターシートにあたらしく、○○建設のデータを一行挿入追加したら、
自動で、会社ごとの○○建設のページに自動で一行追加挿入され、入力されるようにというのは
できるのでしょうか?
私は、プログラマーとして簡単なエクセルVBAのプログラムを作って、あるシートのデータを別シートにコピーするなどの処理をさせています。
考え方としては、入力が完了したシートの行を上から下にサーチして、目的の行が見つかれば、別のシートに追加するって処理をExcelVBAというプログラムで記述します。
この処理の欠点は、同じ処理を2回行うと、それぞれ2件のデータが別シートに追加されることです。
それを防ぐには、例えば、各行のデータに登録日付欄などをもっておいて、コピー先のシートで同じ日付のデータ行を事前に削除したあとで、コピーする処理を行うようにします。
上記のようなプログラムを、シートごとに作って、それを順番に実行すれば、マスターシートに入力した当日分のデータ行を、別シートにコピーすることが可能になります。
ちなみに、別シートにコピーする例のサイトを見ましたけど、私はそのサイトの方法でコピーしたことありませんね。ちょっと面倒な処理が必要なばあい、いろいろと追加処理が後から必要になることが多いので、ExcelVBAで作成しています。
結論として、可能か、不可能か?と問われるなら「可能」だという答えになります。
ただし、エクセルに内蔵されているExcelVBAを使ってプログラミングする能力を持っていることが条件になります。
迅速なアドバイス、ありがとうございました。
私の力量も書いておけばよかったですね、、、、失礼しました。
プログラミングの能力は残念ながら持っていません。
現実的には不可能ってかんじですかね、、、。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Excel(エクセル) 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法 2 2023/02/09 23:53
- 統計学 統計に関する質問です 3 2022/05/19 20:21
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
Excelでシートの違うデータでグ...
-
オートフィルタで抽出したデー...
-
複数シートからデータを拾って...
-
エクセルファイルのシート毎の容量
-
Excelで日付変更ごとに、自動的...
-
Googleスプレッドシートフィル...
-
Excelファイルの容量が異常に大...
-
コンボボックスの参照先(ListF...
-
エクセルで名簿を50音で切り分ける
-
他のシートの一番下の行データ...
-
トランジスタの選び方
-
エクセルのファイルが8MBも!!
-
【Excel】マクロでグラフ系列に...
-
シート削除して同名シート追加...
-
エクセルファイルを開く時、常...
-
Excelの警告について
-
Excel 関数を使ってデータと一...
-
エクセルで行番号、列アルファ...
-
EXCELで複数のシートを一度に「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
Excelでシートの違うデータでグ...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
シート削除して同名シート追加...
-
VBAで CTRL+HOMEの位置へ移動...
-
Excelで日付変更ごとに、自動的...
-
トランジスタの選び方
-
EXCELで2つのファイルから重複...
-
【エクセルマクロ】複数シート...
-
他のシートの一番下の行データ...
-
エクセル 縦に長い表の印刷時...
-
エクセル VBA VLOOKUP
-
【エクセル」 特定のセルで条件...
-
【Excel】マクロでグラフ系列に...
-
エクセルで名簿を50音で切り分ける
-
Excelマクロ 差分抽出の方法が...
-
時間帯の重複を除いた集計について
-
オートフィルタで抽出したデー...
-
Excel 売上管理シートに入力し...
おすすめ情報
補足ですが、ほとんど初心者に近いです。
パソコン自体は10年ほど触ってますが、office系は書類作る程度です。
解決策のご提案をいただけましたら、よろしくお願いいたします。