よねさんのWordとExcelの小部屋 なんでも掲示板

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

ツリー一括表示

Nomal 配列 複数回コピー /てん Mail (21/04/06(Tue) 11:34) #13505
Nomal Re[1]: 配列 複数回コピー /よねさん (21/04/06(Tue) 12:15) #13506
  └Nomal Re[2]: 配列 複数回コピー /てん Mail (21/04/06(Tue) 12:46) #13507
    └Nomal Re[3]: 配列 複数回コピー /てん Mail (21/04/06(Tue) 13:39) #13508
      └Nomal Re[4]: 配列 複数回コピー /よねさん (21/04/06(Tue) 16:27) #13509
        └Nomal Re[5]: 配列 複数回コピー /てん Mail (21/04/06(Tue) 18:28) #13510
          └Nomal Re[6]: 配列 複数回コピー /よねさん (21/04/07(Wed) 06:46) #13511


親記事 / ▼[ 13506 ]
■13505 / 親階層)  配列 複数回コピー
□投稿者/ てん Mail -(2021/04/06(Tue) 11:34:26)
    こちらのサイトではいつもお世話になっており、日々助けられております。
    今回、配列関数を使って、作業をしようとしたところ、限界がきてしまい、
    VBAの繰り返し処理の節を参考にしていたのですが、どうにもうまく置き換えられませんでしたので、相談させていただきました。

    説明下手で申し訳ありませんが、よろしくお願いします。

    品番は1000 列(日付)は200ほどあります。


    やりたいこと

    Sheet1

    A B C D E F G H
    1 品番 品目 4/1 4/2 4/3 4/4 4/5 4/6
    2 1111 aaa 10 15
    3 2222 bbb 15 20 25 30
    4 3333 ccc 25 30



    Sheet2

    A B C D E F G H
    1 品番 品目 数量 日付
    2 1111 aaa 10 4/1
    3 1111 aaa 15 4/3
    4 2222 bbb 15 4/2
    5 2222 bbb 20 4/3
    6 2222 bbb 25 4/4
    7 2222 bbb 30 4/5
    8 3333 ccc 25 4/3
    9 3333 ccc 30 4/6


[ □ Tree ] 返信/引用返信 削除キー/

▲[ 13505 ] / ▼[ 13507 ]
■13506 / 1階層)  Re[1]: 配列 複数回コピー
□投稿者/ よねさん -(2021/04/06(Tue) 12:15:21)
    手作業になりますが、ピボットテーブルの機能を利用する方法があります。
    下のページが参考になると思います。
    【エクセル時短】クロス集計表をリスト形式に戻す方法。元データがなくてもピボットテーブルウィザードで解決!
    https://dekiru.net/article/20383/
    
    ピボットテーブルウィザードは [Alt] [D] [P] と押すと表示できます。
    表の品番と品目は品番_品目(=A2&"_"&B2)といった具合に一つのセルにしてください。
    
    品番_品目 日付・・・・といった表に編集して、先のページの手順でOKです。
    表ができたら、品番品目をデータタブの区切り位置で分解します。
    
    以上です。
    
    

[ 親 13505 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13506 ] / ▼[ 13508 ]
■13507 / 2階層)  Re[2]: 配列 複数回コピー
□投稿者/ てん Mail -(2021/04/06(Tue) 12:46:35)
    ありがとうございます。
    今から試してみます。
    結果はまたご報告させていただきます。
[ 親 13505 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13507 ] / ▼[ 13509 ]
■13508 / 3階層)  Re[3]: 配列 複数回コピー
□投稿者/ てん Mail -(2021/04/06(Tue) 13:39:21)
    ありがとうございます。
    確かに思った結果が出ました。

    記述式マクロに落とし込もうとしましたが、それは無理がありました。

    でも、工数削減できて助かりました
    ありがとうございました。

[ 親 13505 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13508 ] / ▼[ 13510 ]
■13509 / 4階層)  Re[4]: 配列 複数回コピー
□投稿者/ よねさん -(2021/04/06(Tue) 16:27:34)
    品目、数量、日付 といったデータの場合(品番と品目が1つになっている場合)
    一寸データを簡略化して、配列を使ってデータを書き直す例としてコードを書いてみました。
    データ数などいい加減になっているところもありますが、こんな感じ・・・ということで・・・
    参考になったら…という程度で細かなことは考えていませんのでご了承ください。
    
    Sub test()
    
    Dim myData As Variant
    Dim i As Long, j As Long
    Dim cn As Long
    Dim myTable(1 To 210000, 1 To 3)
    
      myData = Worksheets("Sheet1").Range("B1:HB1000").Value
      With Worksheets("Sheet2")
      
      cn = 1
      For i = 2 To 1000 - 2 '約1000行
        
            For j = 1 To 210 - 2 '約210列数 HB列
            cn = cn + 1
          
            myTable(cn - 1, 1) = myData(i, 1)
            myTable(cn - 1, 2) = myData(i, j + 1)
            myTable(cn - 1, 3) = myData(1, j + 1)
          
          
            Next j
        
        Next i
    
        .Range("A2").Resize(210000, 3).Value = myTable
    
        End With
    
    End Sub
    
    

[ 親 13505 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13509 ] / ▼[ 13511 ]
■13510 / 5階層)  Re[5]: 配列 複数回コピー
□投稿者/ てん Mail -(2021/04/06(Tue) 18:28:58)
    何度も申し訳ありません
    チェックも遅れてすみませんでした。

    検証して明日報告させていただきます。

    よろしくお願いいたします。

[ 親 13505 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13510 ] / 返信無し
■13511 / 6階層)  Re[6]: 配列 複数回コピー
□投稿者/ よねさん -(2021/04/07(Wed) 06:46:50)
    検証する必要はないです。
    この様な感じですので、もしコードを作成されるときは
    参考にしてくださいといった気持ちです。
    
    細かなところはいい加減なもんですので、
    まじめに検証されるようなものではありません。時間がもったいないです。
    例えば、For で -1 とか -2 といった根拠のない減算をしていたりします。
    このような感じのコードで動くのだとわかればよいなといった感じです。
    

[ 親 13505 / □ Tree ] 返信/引用返信 削除キー/


Pass/

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

- Child Tree -