| すぐマク YNxv98c9 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| 違う図面番号に同じ工種番号があれば重複してない工種番号を各図面番号に加えるには? |
|
|
|||
|
難解ですね。親亀の背中に小亀・・・、頭が痛くなりそうです。 入力データの黄緑色セルの内の D列は私が付加しました。理由は、ピボットテーブルで集計するために必要で、「フラグ」とでも思っておいてください。同じく 8行目のデータも付加しましたが、他の 6件のデータと無関係のデータがないと、処理の正確性を検証できないからです。 ![]() さっそく回答に入ります。 最初に Excelの通常操作で、データが入力されているワークシートから、右図のピボットテーブルを作成しておきます。(回答が長くなるので説明は省略) このピボットテーブルで、黒は アコードと シビック、白は シビックと フィットにあることが分かります。 あなたなら、これを見ただけで、どれとどれを絡ませればよいのか直ちに判断できるでしょうが、マクロで行うのは相当むつかしいことのように思います。もしかして専門的な手法があるのかも知れませんが私は門外漢なので、あなたの説明に沿ってマクロを組んでみました。右下図はそのマクロの実行結果です。 少々長いマクロなので、個々のサブマクロを省略してメインとなるマクロだけを以下に掲載しておきます。
'-----------------------------------------------------------------------------------------
Sub ピボットテーブルが更新されたら車名別に色を展開する()
Sheets("仕上").Select
Cells.Clear
ピボットテーブルのデータをコピーして分析シートに貼り付ける
If Worksheets("分析").Range("A65536").End(xlUp).Row > 4 Then '2車名以上
分析シートの横計の列を削除し縦計が2以上の列番号を取得する
分析シートの不要な行を削除する
For 取出カウンタ = 1 To 格納カウンタ - 1
分析シートの取出対象列の行を抽出する
抽出したデータを加工シートに貼り付けて縦計を計算する
加工シートの縦計が1以上の列の各行のflgを1にする
分析シートの対応車名を加工シートで仕上がったデータで置換する
Next
加工シートのデータを仕上シートへ展開する
End If
Application.CutCopyMode = False
Worksheets("仕上").Activate
Range("A1").Select
End Sub
'-----------------------------------------------------------------------------------------
これだけでは意味が分かりませんので、 サンプルブック (YNxv98c9.xls 75KB)を ダウンロード して、試してみてください。マクロの実行方法は、「ピボット」シートの B1セルにあるドロップダウン矢印をクリックして「ホンダ」を選択するだけです。動作確認されたら是非結果をお知らせください。そして、マクロを根気よく解析してください。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |