[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『記載場所が統一されていない複数データの一括転記』(Japan天国)
いつも大変お世話になっております!
スペシャリストの方、以下のご教示をお願いできないでしょうか?
【質問】下記のデータ転記は、逐次顧客別の帳票を開いて、手入力しなければならないでしょうか?もしVBAや関数で処理できるのであればやり方を教えていただけないでしょうか?
(1)Excelで作成された顧客別の帳票があり、そのシート上には (i)品目Aと(ii)その値段、(iii)品目Bと(iv)その値段の4項目があります。
(2)顧客別に作成されていた帳票上の情報を別ブックに転記し、(i)〜(iv)の情報をまとめたテーブルを作ります。テーブル構成は以下の通り、品目毎に行を作る形です。
顧客a: 品目A、Aの値段
顧客a: 品目B、Bの値段
顧客b: 品目A、Aの値段
顧客b: 品目B、Bの値段
(3)顧客別の帳票には品目名とその値段は必ず1枚のシート記載されておりますが、記載されているセルの位置は顧客別の帳票ごとに異なります。つまり、帳票のフォーマットは統一されていない状況です。
< 使用 Excel:Excel2016、使用 OS:Windows7 >
マルチポストするのなら、双方でマルチポストしている旨 書き込んだほうがいいですね。
※質問箱のこちらもマルチポストは許容されています。 かといって推奨されているわけではありませんが。 (通りすがり) 2021/01/26(火) 17:06
(マナ) 2021/01/26(火) 22:27
まずは、手作業で。対象セルに、
エクセルが判断できる目印をつけてはどうでしょうか。
例えば、背景色を変えるとか。
そうすれば、マクロで一括処理できると思います。
(マナ) 2021/01/26(火) 22:46
|品目名| 値段
|A | 100
|B | 300
>規則性は全くなく、目で見てしか判断できないならまずは、手作業で。対象セルに、
>エクセルが判断できる目印をつけてはどうでしょうか。
>例えば、背景色を変えるとか。そうすれば、マクロで一括処理できると思います
アドバイスありがとうございます。顧客毎の帳票ファイルが数百にもなってしまうので、それらのファイルを開いて、該当箇所に色をつけるという作業をすると、目視で確認して手で転記していくのと作業負荷は大きく変わらなくなってしまうかもしれません。。
やはり目で確認コピーするしかないですかね。。
(Japan天国) 2021/01/26(火) 23:47
(マナ) 2021/01/26(火) 23:50
(マナ) 2021/01/26(火) 23:58
ありがとうございます。以下、回答いたします。
>各帳票に、テーブルは1個ですか?
はい、テーブルは1つです。ただし品目名はA, Bと2種類だけでなく、帳票ごとに異なります
>顧客名は
帳票の表題に入力してあります。こちらの表題の位置も帳票毎に異なります。まら、帳票のファイルも顧客別になっておりますので、ファイル名を見れば顧客を認識できます。
よろしくお願いいたします。
(Japan天国) 2021/01/27(水) 00:08
その場合、その表の見出し(品目名)セルが目印になりますか?
他の箇所には、品目名というセルはないか という質問です。
(マナ) 2021/01/27(水) 00:11
「テーブルの機能」のテーブルではなく単に表のことです。紛らわしい書き方をして申し訳ございません。
>その場合、その表の見出し(品目名)セルが目印になりますか?
他の箇所には、品目名というセルはないか という質問です。
はい、その通りです。他の箇所には、品目名というセルはございません。
よろしくお願いいたします。
(Japan天国) 2021/01/27(水) 00:18
(マナ) 2021/01/27(水) 00:22
はい、1ファイルに1シートになります。
よろしくお願いいたします。
(Japan天国) 2021/01/27(水) 00:25
ですが、今日はここまでとさせてください。
あと申し訳ありませんが、わたしは日中は書き込みできません。
丸投げ質問でも、書いてくれる回答者は、きっといますので
お待ち下さい。
(マナ) 2021/01/27(水) 00:34
お忙しいところお時間を割いていただき誠にありがとうございました。
自分なりにマクロで自動化できないかトライしてみます。
引き続き何卒よろしくお願いいたします。
(Japan天国) 2021/01/27(水) 01:34
Sub test() Dim dic As Object Dim ws As Worksheet Dim wb As workboook Dim p As String, fn As String Dim v
p = "D:\********\****\" '★対象ファイル格納フォルダ Set ws = ActiveSheet '★集約シート
Set dic = CreateObject("scripting.dictionary")
fn = Dir(p & "*.xlsx")
Do While fn <> "" Set wb = Workbooks.Open(p & fn)
v = wb.Sheets(1).Cells.Find("商品名", , , xlWhole).Resize(3, 2).Value dic(dic.Count) = Array(fn, v(2, 1), v(2, 2)) dic(dic.Count) = Array(fn, v(3, 1), v(3, 2))
wb.Close False fn = Dir() Loop
ws.UsedRange.Offset(1).ClearContents ws.Range("A2").Resize(dic.Count, 3).Value = Application.Index(dic.items, 0, 0)
End Sub
(マナ) 2021/01/27(水) 17:15
ありがとうございます。本当になんとお礼を言っていいのか。。。丸投げしてしまい本当に申し訳ありませんでした。
明日会社に行った際に、教えて頂いたコードを使わせていただきます。
本当にありがとうございました!
(Japan天国) 2021/01/27(水) 21:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.