[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『並べ替えのマクロ』(高橋)
Sheet1のC列には、A列に出てきた工程名の重複を取り除き、その合計を D列に。さらに、C列の工程順をSheet2の工程順に並び替えるマクロを ご教示お願いします。
Sheet1 Sheet2 A B C D A 1 工程名 数量 工程名 工程数量 工程順 2 あ 5 あ 8 う 3 い 2 い 5 い 4 い 3 う 7 お 5 う 2 え 1 あ 6 う 5 お 4 え 7 あ 3 8 え 1 9 お 4
< 使用 Excel:Excel2010、使用 OS:Windows8 >
こんばんわ。
[[20160427202851]] 13:15 『訪問回数と最終訪問日のレコードの表示』(k-pon)
こちらとかなり似てますね。 ここで提示した私のコードを少し修正すれば質問内容と同じ事が実現できます。
まずはご自身でトライされてみて、分からない事は聞いて下さい。
(sy) 2016/04/29(金) 23:56
1)統合でC列D列に集計結果を書き出します。 2)シート2のリスト範囲を1次元配列にします。Transposeを使います。 3)2)の配列をJoinで結合し、ユーザー設定リストとし、並べ替え実行します。
(マナ) 2016/04/30(土) 00:46
そうでした。
そう言えば統合がありましたね。
(sy) 2016/04/30(土) 07:34
1)並び替えの順番をユーサー設定リストに登録 2)C列D列にピボットテーブルを作成(元データ範囲はA列B列全体) 3)フィールド「工程名」のフィルターで(空白)を表示しない
これで、データ変更の際は、更新ボタンをクリックするだけ
(マナ) 2016/05/04(水) 11:24
まずは手作業で試してからでないと、コードの理解はできないかもしれません。 で、手作業でできるようになると、わざわざマクロ化するのが面倒になるかも。 http://www4.synapse.ne.jp/yone/excel2010/excel2010_syukei2.html http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_consolidate.html http://officetanaka.net/excel/vba/tips/tips148.htm
Sub test() Dim 統合元 As Range, 統合先 As Range Dim リスト
With Worksheets("Sheet1") Set 統合元 = .Columns("A:B") Set 統合先 = .Columns("C:D") End With
With 統合先 .ClearContents .Cells(1).Consolidate _ Sources:=統合元.Address(, , xlR1C1, True), _ Function:=xlSum, _ TopRow:=False, _ LeftColumn:=True .Rows(1).Value = Array("工程名", "工程数量") End With
With Worksheets("Sheet2") リスト = Application.Transpose(.Range("A2", .Range("A1").End(xlDown))) End With
With 統合先.Parent.Sort .SortFields.Clear .SortFields.Add Key:=統合先.Columns(1), CustomOrder:=Join(リスト, ",") .SetRange 統合先 .Header = xlYes .Apply End With
End Sub
(マナ) 2016/05/04(水) 11:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.