Page 1 of 1

คำนวณค่า Running total พร้อม Reset Value

Posted: Wed Dec 15, 2021 10:42 pm
by teay-bcc
เรียน สอบถาม อาจารย์ ในการสร้างคอลัมน์ Running total พร้อม Reset Value ด้วย Power Query

รายละเอียด คือ ต้องการสร้างคอลัมน์ Running total พร้อม Reset Value
เมื่อค่าที่รวมไม่เกิน 50,000 แล้วจึงเริ่มรวมค่าใหม่ในคอลัมน์เดิม

ขอบคุณครับ

Re: คำนวณค่า Running total พร้อม Reset Value

Posted: Thu Dec 16, 2021 4:16 pm
by snasui
:D ยังไม่พบว่ามีการนำข้อมูลเข้า Power Query ลองนำข้อมูลเข้าไปก่อนแล้วแนบไฟล์นั้นมาอีกรอบครับ

Re: คำนวณค่า Running total พร้อม Reset Value

Posted: Fri Dec 17, 2021 7:44 am
by teay-bcc
ผมนำข้อมูลเข้า Power Query พร้อมแนบไฟล์แล้วครับ

ขออภัยที่แนบไฟล์ไม่ถูกต้อง ขอบคุณครับ

Re: คำนวณค่า Running total พร้อม Reset Value

Posted: Fri Dec 17, 2021 2:32 pm
by snasui
:D ช่วยเพิ่มคำตอบที่ถูกต้องมาให้ด้วยครับว่าต้องการคำตอบเป็นแบบไหน จะได้เข้าใจตรงกันครับ

Re: คำนวณค่า Running total พร้อม Reset Value

Posted: Sun Dec 19, 2021 3:57 pm
by teay-bcc
ผมเพิ่มคำตอบที่ Sheet : Output ในคอลัมน์ B

โจทย์ คือ ต้องการรวมข้อมูลในคอลมัน์ A ทีละแถวลงมา
หากรวมขอมูลล่าสุดแล้วเกิน 50,000 ให้เริ่มต้นนับใหม่

คำตอบในคอลัมน์ B ผมทำ Manual ไว้ให้ครับ

ขอบคุณครับ

Re: คำนวณค่า Running total พร้อม Reset Value

Posted: Tue Dec 21, 2021 7:18 am
by snasui
:D การใช้ Power Query จัดการงานนี้ ดูแล้วมีหลายขั้นตอน เช่นต้องสร้าง Logic ให้แสดง Group ของแต่ละชุดที่รวมกันไม่เกิน 50000 ออกมาเพื่อใช้ในการหายอดสะสม ผมยังไม่มีเวลาคิดและค้นหาวิธีการดังกล่าวใน Power Query

ระหว่างนี้ใช้สูตร Excel เป็นการเฉพาะหน้าไปก่อนครับ

เซลล์ B2 คีย์สูตร

=IF(N(C1)+A2>50000,A2,N(C1)+A2)

Enter > Copy ลงด้านล่าง

ส่วนการ Running Total ศึกษาจากที่นี่เป็นเบื้องต้นครับ :arrow: https://www.youtube.com/results?search_ ... ower+query

Re: คำนวณค่า Running total พร้อม Reset Value

Posted: Tue Dec 21, 2021 1:12 pm
by teay-bcc
ขอบคุณสำหรับแนวทางครับ อาจารย์

Re: คำนวณค่า Running total พร้อม Reset Value

Posted: Sat Dec 25, 2021 12:36 am
by Bo_ry

Code: Select all

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Rtotal = List.Generate(()=>[i = 1, s = Source[Value]{0}], each [i] <= Table.RowCount(Source), 
        each [i = [i]+1, s = if [s] + Source[Value]{[i]} >50000 then Source[Value]{[i]} else  [s] + Source[Value]{[i]} ],
        each [s] )
in
    Rtotal