[[20240715133842]] 『パワークエリの集計とPivot』(QWA) ページの最後に飛ぶ

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

| 全文検索 | 過去ログ ]

 

『パワークエリの集計とPivot』(QWA)

お世話になります
年間の出納データCSVがありそこに
年月と週目の列を作りSUNIFSなどで集計表を作成しています

パワークエリで関数と同様の見た目の結果を出したいのですが可能でしょうか

集計結果
  23年04月        23年05月
週目1 2 3 4 5 月計 1 2 3 4 5 月計
1あ 100  20   30 150



5お 222  11   33 266
6か
7き


元CSV
日付 項目 金額 年月 週目
20230401 あ 10 2304  1
20230402 あ 90 2304  1

・項目数は38ありますが実際にあるのは20項目程度です。
データのない234といった行もないままで表示、固定位置に出したい。

・年月と週目を合わせた列を作って2304-1として、週毎を出しているが月ごとも一気に出す方法があるか探しています

よろしくお願いします

< 使用 Excel:Excel2010、使用 OS:Windows10 >


こんばんわ。。。^^
わたし、パワークエリとPivot、はチンプンカンプンでして^^;
TEST情報のお手伝いだけでもと。。。m(__)m

>>データのない234といった行もないままで表示、固定位置に出したい。

は。。。日付と項目は有るがそれ以外は無いと想像しています。← あくまで
想像なので違いましたらお許しを賜ると共に、このレスは無視してくださいませ。
でわ

 Option Explicit
Sub DummyDataMake01()
    Dim sTrc(), sTrc2(), i&, sd#, w(), iMax&, rN&, m(), j&, cnt&
    Rem 実務メンバー
    Rnd -7
    sTrc = Array(12354, 12356, 12358, 12360, 12362, 12363, 12365, 12367, 12369, 12371, _
                 12373, 12375, 12377, 12379, 12381, 12383, 12385, 12388, 12390, 12392, _
                 12394, 12395, 12396, 12397, 12398, 12399, 12402, 12405, 12408, 12411, _
                 12420, 12422, 12424, 12435)
    iMax = 365
    m = Array("日付", "項目", "金額", "年月", "週目")
    sd = DateSerial(2023, 1, 1) - 1
    ReDim w(1 To iMax, 1 To 5)
    Do
        i = i + 1
        sd = sd + 1
        If i > iMax Then Exit Do
        w(i, 1) = Year(sd) & Format(Month(sd), "00") & Format(Day(sd), "00")
        rN = Int((UBound(sTrc) - LBound(sTrc) + 1) * Rnd + LBound(sTrc))
        w(i, 2) = ChrW(sTrc(rN))
        w(i, 3) = Int((9 - 1 + 1) * Rnd + 1) * 10
        w(i, 4) = Right(Year(sd), 2) & Format(Month(sd), "00")
        w(i, 5) = Application.WeekNum(sd) - Application.WeekNum(DateSerial(Year(sd), Month(sd), 1)) + 1
        If i Mod 43 = 0 Then
            DoEvents
            cnt = cnt + 1
            For j = 2 To 5
                w(i, j) = Empty
            Next
            Rem 管理監督者?
            sTrc2 = Array("X", "X1", "X2")
            w(i, 2) = sTrc2(Int((2 - 0 + 1) * Rnd + 0))
        End If

    Loop
    With Worksheets("Sheet1")
        .UsedRange.Clear
        .Cells(1).Resize(, 5) = m
        .Cells(2, 1).Resize(UBound(w, 1), 5) = w
    End With
    Erase sTrc, sTrc2, w, m
    MsgBox cnt
End Sub
(隠居Z) 2024/07/16(火) 23:44:07

2312

31日もあるなら6週目もあるのでしょうかね。。。
条件のご説明が簡素化されているのもなかなかご案内が無い事につながるのかもしれません。

>>データのない234といった行もないままで表示、固定位置に出したい。

CSV、ではどの様になっているのか教えて戴けると幸甚です。
ただ、興味本位です。何もお役に立てないかもしれませんので、^^;
かえって、混乱させてしまったかもしれません。済みませんでした。
でわ
がんばってくださいね。。。m(__)m
(隠居Z) 2024/07/17(水) 07:52:32


>・項目数は38ありますが実際にあるのは20項目程度です。
データのない234といった行もないままで表示、固定位置に出したい。

ここがネックですよね。
察するに、提示の例に倣うなら、
38項目には、「い」「う」「え」が存在しているが、
CSVには含まれていない時、「い」「う」「え」の分の行は空行にしたい、ということでしょうか。

表の体裁がどうしても空行空列が必要というのがマストでないなら、
ピボットテーブルでもそれっぽい表になると思いますが・・・

[行]・・・項目
[列]・・・上から、年月、週目の順
[値]・・・合計/金額
(雨傘) 2024/07/17(水) 08:30:12


お礼が遅くなり申し訳ありません

(隠居Z)さま
ありがとうございます。
不要な列が多数あり、削除しています。
6週目は過去のログで5週にまとめる方法を参考にしました。
頑張ってみます

(雨傘)さま
ありがとうございます。
提出用のエクセルシートに、空行も表示できればサクッと張り付けれるのではと試行錯誤しています。

(QWA) 2024/07/18(木) 18:01:48


 上手くできるかわかりませんが

 ・全項目(38項目)を列挙したマスターテーブルを用意して
 ・Power Queryで、CSVデータとマージ
 ・ピボットテーブルで集計
  
(マナ) 2024/07/18(木) 18:51:10

ありがとうございます
(QWA) 2024/07/19(金) 13:50:26

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.