返回列表 上一主題 發帖

[發問] 查詢比對後同項目數量總和及不同方式呈述

[發問] 查詢比對後同項目數量總和及不同方式呈述

本帖最後由 BV7BW 於 2022-7-27 04:54 編輯

各位 先進 老師大家好

請教各位先進 老師
於查詢比對後相同項目總和及不同方式呈述資料
至工作表中查詢比對後.將相同項目之數量加成總和後呈列
同時查詢比對後時需呈列2種呈述方式資料至各儲存格
及需跨2個工作表查詢

問題需求
1)單項目查詢
以K9(項目查詢)及K5.K6(日期)
至(訂貨明細表)中比對後項目加總和
呈列A2:D2中.
並帶出各客戶各項目總和呈列於R2:V2中
(庫存)則須至(項目編號)庫存中比對資料
呈現出E2(庫存)資料
例如單項目查詢結果(一)及客戶查詢結果(一)

2)單客戶查詢
以K11(客戶)K5.K6(日期).及K9(項目查詢)
至(訂貨明細表)中比對後項目總和
並呈列於Q2:V2各項資料
例如客戶查詢結果(二)

3)項目總量查詢
以K5.K6(日期)至(訂貨明細表)中比對後
項目總合呈列A2;D2
(庫存)則須至(項目編號)庫存中比對資料
呈現出E2(庫存)資料
例如以下是項目總量查詢結果

4)客戶總量查詢
以K11(客戶)及K5.K6(日期)
至(訂貨明細表)中比對項目總和
呈列R2:V2各項資料
例如以下是客戶總量結果


  感謝指導

銷售項目總量表(一).rar (658.73 KB)

敏而好學,不恥下問

回復 1# BV7BW

這個需求和上次一樣,因為看不太懂就不知如何寫,可否請您舉例說明一下,感謝

TOP

本帖最後由 BV7BW 於 2022-7-27 18:05 編輯

回復 2# samwang
samwang 大大 你好
感謝你回覆.也很抱歉未能第一時間回答 抱歉
如有不祥之處請見諒再查問

1)單項目查詢.主要查詢4/1至4/10日單一項目所有銷售出數量.及哪幾客戶所買多少呈列
             例如) 你1賣出5件並不是一天賣出.是4/1至4/10日共賣出5件呈列A2:D2中
             而這5件是又哪幾位客戶所買而數量多少
             .也是將每位客戶所買之數量加起來呈列至R2:V2中
             所以才有2種不同方式結果呈述  
             當查詢出結果呈列A2:D2.因在(訂貨明細表)中沒有庫存這項資料.
             所以須至(項目編號)表中查詢得庫存資料.所以須跨2個工作表查詢
            
項編        項目名稱        數量        單位        庫存
A101        你1                         5               台斤                 1
        單項目查詢結果(一)

日期        客戶        項編        項目名稱        數量        單位
                陳一        A101          你1                 2            台斤
                林二        A101          你1                 2            台斤
               傅啃達        A101          你1                 1            台斤

        單項目查詢結果(一)

2)單客戶查詢.以日期及客戶.查詢4/1至4/10日單一項目所有銷售出數量呈列
             例如陳一在4/1至4/10日幾時購買你1                               
                       
日期               客戶               項編            項目名稱           數量        單位                               
                                       
111/04/01        陳一        A101        你1                      1        台斤
111/04/02        陳一        A101        你1                      1        台斤

                單客戶查詢結果(二)

3)項目總量查詢.以日期至(訂貨明細表)中查詢出4/1至4/10日共有多少項目賣出
               如果相同項目並加成總數指呈現出該項目之總數
               例如你1在4/1至4/10日賣出共5件但不是一天賣出
               只需呈列你1的總數.其餘你2.你3等等皆一樣方式呈列
               當查詢出結果呈列A2:D2.因在(訂貨明細表)中沒有庫存這項資料.
               所以須至(項目編號)表中查詢得庫存資料.所以須跨2個工作表查詢

項編        項目名稱     數量        單位        庫存
A101        你1                      5        台斤         1
A102        我1                      2        公斤         1
A103        他1                      2        箱             1
B201        你2                      5        台斤         2
B202        我2                      4        公斤         2
B203        他2                      4        台斤         2
C301        你3                      4        台斤         3
C302        我3                      4        公斤         3       
............
............                               
4)客戶總量查詢.以客戶名及日期至(訂貨明細表)中查詢呈列
               如果相同項目並加成總數指呈現出該項目之總數
               例如陳一在4/1至4/10日所購買之項目及數量總數呈列
               而你1有購買2次共2公斤
               這無須查詢庫存

日期        客戶        項編        項目名稱        數量        單位
                 陳一        A101        你1                          2               台斤
                 陳一        A102        我1                          1              公斤
                陳一        A103        他1                         1              箱
                陳一        B201        你2                          1               台斤
                 陳一        B202        我2                          1              公斤
                 陳一        B203        他2                          1               台斤
                 陳一        C301        你3                           1               台斤
................
................

   謝謝你回覆
敏而好學,不恥下問

TOP

回復 2# samwang
修訂查詢庫存資料位置
庫存須至項目編號中NN2儲存格查詢比對
再從新傳送新資料(庫存資料)

銷售項目總量表(一).rar (690.86 KB)

敏而好學,不恥下問

TOP

本帖最後由 samwang 於 2022-7-29 20:27 編輯

回復 3# BV7BW

1)單項目查詢.主要查詢4/1至4/10日單一項目所有銷售出數量.及哪幾客戶所買多少呈列

如下請測試看看,謝謝
Sub 單項目查詢()
Dim Arr, xD, T$, Ds As Date, De As Date
Dim Brr(1 To 1, 1 To 4), Crr(), n%, i&, j%
Set xD = CreateObject("Scripting.Dictionary")
Ds = [K5]: De = [K6]: T = [K9]
Arr = Sheets("訂貨明細表").[a1].CurrentRegion
ReDim Crr(1 To UBound(Arr), 1 To 5)
For i = 2 To UBound(Arr)
    If Arr(i, 4) <> T Then GoTo 99
    If Arr(i, 12) >= Ds And Arr(i, 12) <= De Then
        If n = 0 Then
            n = n + 1: xD(Arr(i, 1) & "") = n
            For j = 1 To 4: Brr(1, j) = Arr(i, j + 2): Next
            Crr(n, 1) = Arr(i, 1): Crr(n, 2) = Arr(i, 3)
            Crr(n, 3) = Arr(i, 4): Crr(n, 4) = Arr(i, 5)
            Crr(n, 5) = Arr(i, 6)
        Else
            If xD.Exists(Arr(i, 1) & "") Then
                m = xD(Arr(i, 1) & "")
                Crr(m, 4) = Arr(i, 5) + Crr(m, 4)
            Else
                n = n + 1: xD(Arr(i, 1) & "") = n
                Crr(n, 1) = Arr(i, 1): Crr(n, 2) = Arr(i, 3)
                Crr(n, 3) = Arr(i, 4): Crr(n, 4) = Arr(i, 5)
                Crr(n, 5) = Arr(i, 6)
            End If
            Brr(1, 3) = Brr(1, 3) + Arr(i, 5)
        End If
    End If
99: Next
If n > 0 Then
    Range("a2:c2") = ""
    Range("a2").Resize(1, 4) = Brr
    Range("r2:v8") = ""
    Range("r2").Resize(n, 5) = Crr
End If
End Sub
   

TOP

回復 5# samwang
samwang 老師 你好
  感謝你解答
經測試後已完全吻合目標需求非常正確運算.
現庫存未能正確顯示資料
列如你1庫存資料為1現是有顯示1
    你2庫存資料為2現顯示1.應是2
    你30庫存資料為30.現顯示1
假如去修改你1庫存為2.查詢後應顯示出2
但修改後也沒正確顯示
請samwang 老師 是否可修改

感謝 samwang 老師 指導
敏而好學,不恥下問

TOP

回復 5# samwang
samwang 老師 你好

項目編號不同
例如你1有2種不同編號A101你1與A109你1
如查詢A109你1現是以A101你1作查詢.應以A109你1查詢
敏而好學,不恥下問

TOP

回復 7# BV7BW
samwang 老師
    項目編號不同
例如你1有2種不同編號A101你1與A109你1
如查詢A109你1現是以A101你1作查詢.應以A109你1查詢
項目編號不同這題不用修改
因是項目不可重複使用.如需相同自己應另行作區分以便正常運作
抱歉添加老師煩心抱歉
敏而好學,不恥下問

TOP

回復  samwang
samwang 老師 你好
  感謝你解答
經測試後已完全吻合目標需求非常正確運算.
現庫存未能 ...
BV7BW 發表於 2022-7-29 21:26


列如你1庫存資料為1現是有顯示1
     你2庫存資料為2現顯示1.應是2
     你30庫存資料為30.現顯示1
>> 如何得知庫存??

1.JPG (101.69 KB)

1.JPG

TOP

回復  BV7BW
samwang 老師
    項目編號不同
例如你1有2種不同編號A101你1與A109你1
如查詢A109你1現是 ...
BV7BW 發表於 2022-7-29 22:10


你1 只有A101,沒有A109如圖片

1.JPG (101.69 KB)

1.JPG

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題