[[20210126161741]] 『記載場所が統一されていない複数データの一括転記』(Japan天国) >>BOT

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『記載場所が統一されていない複数データの一括転記』(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

ご指摘ありがとうございます。もう片方にも追記しておきました。
(Japan天国) 2021/01/26(火) 17:15

目で見て判断するときは
どれが品目名で、どれがその値段と判断するのでしょうか。
また、どっちが、Aで、どっちがBかも、どうすれば判断できますか。

(マナ) 2021/01/26(火) 22:27


規則性は全くなく、目で見てしか判断できないなら

まずは、手作業で。対象セルに、
エクセルが判断できる目印をつけてはどうでしょうか。
例えば、背景色を変えるとか。
そうすれば、マクロで一括処理できると思います。

(マナ) 2021/01/26(火) 22:46


マナ様
ご返信ありがとうございます。
帳票上は以下のようなテーブル上に情報が記載されております。(記載されている位置はファイル毎に異なります)

|品目名| 値段 
|A   |  100
|B   |  300

>規則性は全くなく、目で見てしか判断できないならまずは、手作業で。対象セルに、
>エクセルが判断できる目印をつけてはどうでしょうか。
>例えば、背景色を変えるとか。そうすれば、マクロで一括処理できると思います

アドバイスありがとうございます。顧客毎の帳票ファイルが数百にもなってしまうので、それらのファイルを開いて、該当箇所に色をつけるという作業をすると、目視で確認して手で転記していくのと作業負荷は大きく変わらなくなってしまうかもしれません。。

やはり目で確認コピーするしかないですかね。。
(Japan天国) 2021/01/26(火) 23:47


各帳票に、テーブルは1個ですか?

(マナ) 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


最後の確認です。
1ファイルに、1シートでしょうか?

(マナ) 2021/01/27(水) 00:22


マナ様

はい、1ファイルに1シートになります。

よろしくお願いいたします。
(Japan天国) 2021/01/27(水) 00:25


これだけ情報あれば、マクロで自動化できます。

ですが、今日はここまでとさせてください。
あと申し訳ありませんが、わたしは日中は書き込みできません。
丸投げ質問でも、書いてくれる回答者は、きっといますので
お待ち下さい。

(マナ) 2021/01/27(水) 00:34


マナ様

お忙しいところお時間を割いていただき誠にありがとうございました。
自分なりにマクロで自動化できないかトライしてみます。

引き続き何卒よろしくお願いいたします。
(Japan天国) 2021/01/27(水) 01:34


商品名で検索し、見つかったセルの下の2行×2列のデータが必要なデータ
★の行は、要修正

 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.