บริบทในสูตรของ DAX

หมายเหตุ:  เราต้องการมอบเนื้อหาวิธีใช้ปัจจุบันในภาษาของคุณให้กับคุณโดยเร็วที่สุดเท่าที่เราจะทำได้ หน้านี้ได้รับการแปลด้วยระบบอัตโนมัติ และอาจมีข้อผิดพลาดทางไวยากรณ์หรือความไม่ถูกต้อง จุดประสงค์ของเราคือเพื่อให้เนื้อหานี้มีประโยชน์กับคุณ คุณแจ้งให้เราทราบว่าข้อมูลดังกล่าวมีประโยชน์ต่อคุณที่ด้านล่างของหน้านี้ได้หรือไม่ นี่คือ บทความภาษาอังกฤษ เพื่อให้ง่ายต่อการอ้างอิง

บริบทช่วยให้คุณสามารถทำการวิเคราะห์แบบไดนามิก ซึ่งจะให้ผลลัพธ์จากสูตรที่สามารถเปลี่ยนแปลงได้เพื่อแสดงการเลือกแถวหรือเซลล์ในปัจจุบัน รวมทั้งข้อมูลทั้งหมดที่เกี่ยวข้อง ความเข้าใจบริบทและการใช้บริบทอย่างมีประสิทธิภาพเป็นสิ่งสำคัญอย่างยิ่งสำหรับการสร้างสูตรที่มีประสิทธิภาพสูง การวิเคราะห์แบบไดนามิก และการแก้ไขปัญหาในสูตรต่างๆ

ส่วนนี้กำหนดชนิดต่าง ๆ ของบริบท: บริบทแถวบริบท บริบทแบบสอบถาม และบริบทตัวกรอง จะอธิบายถึงวิธีประเมินบริบทสำหรับสูตร ในคอลัมน์จากการคำนวณ และ ใน Pivottable

ส่วนสุดท้ายของบทความนี้จะมีการเชื่อมโยงไปยังตัวอย่างแบบละเอียด ซึ่งแสดงให้เห็นว่าผลลัพธ์ของสูตรเปลี่ยนแปลงไปโดยสอดคล้องกับบริบทอย่างไร

ความเข้าใจเกี่ยวกับบริบท

สูตรในPower Pivot ที่สามารถได้รับผลกระทบ โดยตัวกรองที่นำไปใช้ใน PivotTable ตามความสัมพันธ์ระหว่างตาราง และ โดยตัวกรองที่ใช้ในสูตร บริบทคือ อะไรทำให้สามารถดำเนินการวิเคราะห์แบบไดนามิก ทำความเข้าใจเกี่ยวกับบริบทเป็นสิ่งสำคัญ สำหรับแบบเอกสารสำเร็จรูป และ สำหรับการแก้ไขปัญหาเกี่ยวกับสูตร

มีชนิดที่แตกต่างกันของบริบท: บริบทแถวบริบท บริบทแบบสอบถาม และบริบทตัวกรอง

บริบทแถวอาจมองเป็น "แถวปัจจุบัน" ถ้าคุณได้สร้างคอลัมน์จากการคำนวณ บริบทแถวประกอบด้วยค่าในแต่ละแถวแต่ละรายการและค่าในคอลัมน์ที่เกี่ยวข้องกับแถวปัจจุบัน ยังมีบางฟังก์ชัน (ฟังก์ชัน EARLIERและฟังก์ชัน EARLIEST) ที่ได้รับค่าจากแถวปัจจุบัน จากนั้น ใช้ค่านั้นในขณะที่กำลังดำเนินการเหนือตารางทั้งหมด

บริบทแบบสอบถามหมายถึงชุดย่อยของข้อมูลที่จะถูกสร้างขึ้นโดยทางอ้อมสำหรับแต่ละเซลล์ใน PivotTable โดยขึ้นอยู่กับส่วนหัวของแถวและคอลัมน์

บริบทตัวกรองคือ ชุดของค่าที่อนุญาตให้ใช้ในแต่ละคอลัมน์ โดยยึดตามข้อจำกัดของตัวกรองที่ถูกนำไปใช้กับแถว หรือที่ถูกกำหนด โดยนิพจน์ตัวกรองภายในสูตร

ด้านบนของหน้า

บริบทแถว

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

ตัวอย่าง สมมติว่า คุณสร้างคอลัมน์จากการคำนวณ [ขนส่ง] = [ภาษี], +

ซึ่งบวกสองคอลัมน์จากตารางเดียวกันเข้าด้วยกัน สูตรนี้จะทำงานเช่นเดียวกับสูตรในตาราง Excel ซึ่งอ้างอิงค่าจากแถวเดียวกันโดยอัตโนมัติ โปรดทราบว่าตารางแตกต่างจากช่วงข้อมูล กล่าวคือ คุณไม่สามารถอ้างอิงค่าจากแถวที่อยู่ก่อนแถวปัจจุบันโดยใช้สัญพจน์ช่วงข้อมูล และไม่สามารถอ้างอิงค่าเดียวที่กำหนดเองในตารางหรือเซลล์ได้ คุณจะต้องใช้ตารางและคอลัมน์เสมอ

บริบทแถวจะดำเนินตามความสัมพันธ์ระหว่างตารางโดยอัตโนมัติ เพื่อระบุแถวในตารางที่เกี่ยวข้องที่ได้รับการกำหนดความสัมพันธ์กับแถวปัจจุบัน

ตัวอย่างเช่น สูตรต่อไปนี้จะใช้ฟังก์ชัน RELATED เพื่อดึงข้อมูลมูลค่าภาษีจากตารางที่เกี่ยวข้อง โดยยึดตามภูมิภาคที่มีการจัดส่งตามคำสั่งซื้อ ฟังก์ชันนี้จะหามูลค่าภาษีโดยใช้ค่าสำหรับภูมิภาคในตารางปัจจุบัน ค้นหาภูมิภาคในตารางที่เกี่ยวข้อง แล้วรับค่าอัตราภาษีสำหรับภูมิภาคนั้นจากตารางที่เกี่ยวข้อง

= [ขนส่ง] + RELATED('Region'[TaxRate])

สูตรนี้จะรับค่าอัตราภาษีสำหรับภูมิภาคปัจจุบันจากตาราง Region คุณไม่จำเป็นต้องทราบหรือระบุคีย์ที่เชื่อมโยงตารางนั้น

หลายบริบทแถว

นอกเหนือจากฟังก์ชันทั่วไป DAX ยังประกอบด้วยฟังก์ชันที่วนซ้ำการคำนวณในตาราง ฟังก์ชันเหล่านี้อาจมีแถวปัจจุบันหลายแถว และบริบทแถวปัจจุบันหลายบริบท ในแง่ของการเขียนโปรแกรม คุณสามารถสร้างสูตรที่เกิดซ้ำในการวนรอบชั้นใน (Inner Loop) และการวนรอบชั้นนอก (Outer Loop) ได้

ตัวอย่าง สมมติว่า เวิร์กบุ๊กของคุณประกอบด้วยตารางผลิตภัณฑ์และยอดขายตาราง คุณอาจต้องการมาดูตารางทั้งหมดขาย ซึ่งเป็นทั้งหมดของผลิตภัณฑ์หลายบัญชี และค้นหาปริมาณมากที่สุดสำหรับแต่ละผลิตภัณฑ์ในทรานแซคชันใด ๆ หนึ่งที่เรียงลำดับ

ใน Excel การคำนวณนี้จะต้องใช้ข้อมูลสรุปขั้นกลางหลายชุด ซึ่งจะถูกสร้างขึ้นใหม่ถ้าข้อมูลมีการเปลี่ยนแปลง ถ้าคุณเป็นผู้ใช้ที่มีความชำนาญใน Excel คุณอาจสร้างสูตรอาร์เรย์ที่ทำงานดังกล่าวได้ หรือคุณอาจเขียนการเลือกย่อยที่ซ้อนกันในฐานข้อมูลเชิงสัมพันธ์

อย่างไรก็ตาม เมื่อใช้ DAX คุณจะสามารถสร้างสูตรเดียวที่ส่งกลับค่าที่ถูกต้อง และผลลัพธ์ต่างๆ จะได้รับการปรับปรุงโดยอัตโนมัติทุกครั้งที่คุณเพิ่มข้อมูลลงในตาราง

=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

สำหรับรายละเอียดสรุปขั้นตอนนี้สูตร ดูฟังก์ชัน EARLIER

กล่าวโดยย่อคือ ฟังก์ชัน EARLIER จะจัดเก็บบริบทแถวจากการดำเนินการที่มาก่อนการดำเนินการปัจจุบัน ทุกๆ ครั้งฟังก์ชันนี้จะจัดเก็บชุดบริบทสองชุดในหน่วยความจำ ได้แก่ ชุดบริบทหนึ่งชุดที่แสดงแถวปัจจุบันเพื่อเป็นการวนรอบชั้นในของสูตร และชุดบริบทอีกชุดหนึ่งที่แสดงแถวปัจจุบันเพื่อเป็นการวนรอบชั้นนอกของสูตร DAX จะป้อนค่าระหว่างการวนรอบทั้งสองโดยอัตโนมัติเพื่อให้คุณสามารถสร้างการรวมที่ซับซ้อนได้

ด้านบนของหน้า

บริบทแบบสอบถาม

บริบทแบบสอบถามหมายถึงชุดย่อยของข้อมูลที่ถูกดึงโดยทางอ้อมสำหรับสูตร เมื่อคุณปล่อยเขตข้อมูลค่าอื่น ๆ หรือหน่วยวัดลงในเซลล์ใน PivotTable กลไกPower Pivot ตรวจสอบที่ส่วนหัวของแถวและคอลัมน์ ตัวแบ่งส่วนข้อมูล และตัวกรองรายงานเพื่อกำหนดบริบท แล้วPower Pivot ทำให้การคำนวณที่จำเป็นในการรวบรวมแต่ละเซลล์ใน PivotTable ชุดของข้อมูลที่จะได้รับเป็นบริบทแบบสอบถามสำหรับแต่ละเซลล์

เนื่องจากบริบทสามารถเปลี่ยนแปลงได้ตามตำแหน่งที่คุณวางสูตร ผลลัพธ์ของสูตรก็อาจเปลี่ยนแปลงได้เช่นกัน โดยขึ้นอยู่กับว่าคุณใช้สูตรใน PivotTable ที่มีตัวกรองและการจัดกลุ่มจำนวนมาก หรือในคอลัมน์จากการคำนวณที่ไม่มีตัวกรองและบริบทขนาดเล็ก

ตัวอย่าง สมมติว่า คุณสร้างสูตรอย่างง่ายนี้ที่ค่าในคอลัมน์Profitของ table:=SUM('Sales'[Profit])ยอดขายรวม

ถ้าคุณใช้สูตรนี้ในคอลัมน์จากการคำนวณภายในตารางSalesผลลัพธ์ของสูตรจะเหมือนกับสำหรับตารางทั้งหมด เนื่องจากเสมอบริบทแบบสอบถามสำหรับสูตรเป็นชุดข้อมูลของตารางSalesทั้งหมด ผลลัพธ์ของคุณจะได้กำไรทั้งหมดสำหรับภูมิภาคทั้งหมด ผลิตภัณฑ์ทั้งหมด ปีทั้งหมด และต่อไปเรื่อย ๆ

อย่างไรก็ตาม โดยทั่วไปแล้ว คุณไม่ต้องการดูผลลัพธ์เดียวกันเป็นร้อยๆ ครั้ง แต่ต้องการดูกำไรของปีที่เฉพาะเจาะจง ประเภทหรือภูมิภาคที่เฉพาะเจาะจง ผลิตภัณฑ์ที่เฉพาะเจาะจง หรือข้อมูลรวมบางส่วนแทน เพื่อให้ได้ผลรวมทั้งหมดหลังจากนั้น

ใน PivotTable ทำได้ง่ายและเปลี่ยนบริบท โดยการเพิ่ม หรือเอาส่วนหัวของคอลัมน์และแถว และ โดยการเพิ่ม หรือเอาตัวแบ่งส่วนข้อมูล คุณสามารถสร้างสูตรเช่นรายการที่อยู่เหนือ ในหน่วยวัด และปล่อยลงใน PivotTable เมื่อใดก็ ตามที่คุณเพิ่มส่วนหัวของคอลัมน์หรือแถวใน pivottable เปลี่ยนบริบทแบบสอบถามที่วัดจากการประเมิน กรองการดำเนินการ และแบ่งยังมีผลกับบริบท ดังนั้น สูตรเดียวกัน ใช้ใน PivotTable จะถูกประเมินในบริบทแบบสอบถามที่แตกต่างกันสำหรับแต่ละเซลล์

ด้านบนของหน้า

บริบทตัวกรอง

บริบทตัวกรองจะถูกเพิ่มเมื่อคุณระบุข้อจำกัดของตัวกรองในชุดของค่าที่อนุญาตให้ใช้ในคอลัมน์หรือตาราง โดยใช้อาร์กิวเมนต์ไปใช้กับสูตร บริบทตัวกรองที่นำไปใช้ด้านบนของบริบท เช่นบริบทแถวหรือบริบทแบบสอบถามอื่น

ตัวอย่างเช่น PivotTable คำนวณค่าสำหรับแต่ละเซลล์โดยยึดตามส่วนหัวของแถวและคอลัมน์ ตามที่อธิบายไว้ในส่วนก่อนหน้านี้ในบริบทแบบสอบถาม อย่างไรก็ตาม ภายในคอลัมน์จากการคำนวณที่คุณเพิ่มลงใน PivotTable หรือหน่วยวัด คุณสามารถระบุนิพจน์ตัวกรองเพื่อควบคุมค่าที่ใช้ โดยใช้สูตร นอกจากนี้ตามที่เลือกคุณสามารถล้างตัวกรองบนคอลัมน์ที่เฉพาะเจาะจง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างตัวกรองภายในสูตร ดูฟังก์ชันตัวกรอง (DAX)

สำหรับตัวอย่างของวิธี ใช้ล้างตัวกรองเพื่อสร้างผลรวมทั้งหมด ดูฟังก์ชัน ALL

สำหรับตัวอย่างของวิธีการเลือกล้าง และนำตัวกรองภายในสูตร ดูฟังก์ชัน ALLEXCEPT

ดังนั้น คุณต้องดูข้อกำหนดของหน่วยวัดหรือสูตรที่ใช้ใน PivotTable เพื่อให้คุณตระหนักถึงบริบทตัวกรองขณะแปลค่าผลลัพธ์ของสูตร

ด้านบนของหน้า

การกำหนดบริบทในสูตร

เมื่อคุณสร้างสูตร Power Pivot สำหรับ Excel จะตรวจสอบไวยากรณ์ทั่วไปก่อน แล้วตรวจสอบชื่อของคอลัมน์และตารางที่คุณระบุไว้กับคอลัมน์และตารางที่สามารถเลือกได้ในบริบทปัจจุบัน ถ้า Power Pivot ไม่พบคอลัมน์และตารางที่ระบุโดยสูตรนั้น คุณจะได้รับข้อผิดพลาด

บริบทจะได้รับการกำหนดตามที่อธิบายไว้ส่วนก่อนหน้านี้โดยการใช้ตารางที่พร้อมใช้งานในสมุดงาน ความสัมพันธ์ใดๆ ระหว่างตาราง และตัวกรองใดๆ ที่มีการนำไปใช้

ตัวอย่างเช่น ถ้าคุณมีข้อมูลบางส่วนที่นำเข้ามายังตารางใหม่ และไม่ได้ใช้ตัวกรองใดๆ ชุดคอลัมน์ทั้งหมดในตารางนี้จะเป็นส่วนหนึ่งของบริบทปัจจุบัน ถ้าคุณมีหลายตารางที่ได้รับการเชื่อมโยงโดยความสัมพันธ์ และคุณกำลังทำงานใน PivotTable ที่ถูกกรองโดยการเพิ่มส่วนหัวของคอลัมน์และการใช้ตัวแบ่งส่วนข้อมูล บริบทนี้จะรวมตารางที่เกี่ยวข้องและตัวกรองใดๆ ในข้อมูลดังกล่าว

บริบทเป็นแนวคิดที่มีประสิทธิภาพ ซึ่งอาจทำให้แก้ไขปัญหาของสูตรต่างๆ ได้ยากเช่นกัน เราขอแนะนำให้คุณเริ่มต้นด้วยสูตรและความสัมพันธ์ที่ไม่ซับซ้อนเพื่อดูลักษณะการทำงานของบริบท แล้วจึงเริ่มทดลองสูตรง่ายๆ ใน PivotTable ส่วนต่อไปนี้จะมีบางตัวอย่างที่แสดงว่าสูตรใช้ชนิดบริบทที่แตกต่างกันเพื่อส่งกลับผลลัพธ์แบบไดนามิกได้อย่างไร

ตัวอย่างของบริบทในสูตร

  • ฟังก์ชัน RELATED จะขยายบริบทของแถวปัจจุบันเพื่อรวมค่าในคอลัมน์ที่เกี่ยวข้อง โดยอนุญาตให้คุณทำการค้นหาได้ ตัวอย่างในหัวข้อนี้แสดงให้เห็นการทำงานที่สัมพันธ์กันของบริบทตัวกรองและบริบทแถว

  • ฟังก์ชัน FILTER ช่วยให้คุณสามารถระบุแถวที่จะรวมในบริบทปัจจุบัน ตัวอย่างในหัวข้อนี้ยังแสดงให้เห็นวิธีการฝังตัวกรองภายในฟังก์ชันอื่นๆ ที่ทำการรวม

  • ฟังก์ชัน ALL จะกำหนดบริบทภายในสูตร คุณสามารถใช้ฟังก์ชันนี้เพื่อแทนที่ตัวกรองที่ถูกนำไปใช้ซึ่งเป็นผลจากบริบทแบบสอบถาม

  • ฟังก์ชัน ALLEXCEPT ช่วยให้คุณสามารถเอาตัวกรองทั้งหมดออกได้ ยกเว้นตัวกรองที่คุณระบุ ทั้งสองหัวข้อนี้จะประกอบด้วยตัวอย่างที่แนะนำวิธีการสร้างสูตรและการทำความเข้าใจบริบทที่ซับซ้อนให้กับคุณ

  • ฟังก์ชัน EARLIER และ EARLIEST ช่วยให้คุณสามารถวนดูทั่วตารางได้โดยทำการคำนวณในขณะที่อ้างอิงค่าจากการวนรอบชั้นใน ถ้าคุณคุ้นเคยกับแนวคิดของการเกิดซ้ำ และการวนรอบชั้นในและชั้นนอก คุณจะพอใจกับความสามารถที่ฟังก์ชัน EARLIER และ EARLIEST จัดเตรียมให้กับคุณ ถ้าคุณไม่คุ้นเคยกับแนวคิดนี้ คุณควรทำตามขั้นตอนในตัวอย่างด้วยความระมัดระวัง เพื่อดูลักษณะการใช้งานบริบทชั้นในและชั้นนอกในการคำนวณ

ด้านบนของหน้า

Referential Integrity

ส่วนนี้จะพูดถึงแนวคิดขั้นสูงบางข้อที่เกี่ยวข้องกับค่าที่ขาดหายไปในตาราง Power Pivot ที่เชื่อมโยงด้วยความสัมพันธ์ต่างๆ ส่วนนี้อาจเป็นประโยชน์ต่อคุณถ้าคุณมีเวิร์กบุ๊กซึ่งมีหลายตารางและสูตรที่ซับซ้อน และต้องการความช่วยเหลือในการทำความเข้าใจผลลัพธ์

ถ้าคุณไม่เคยใช้แนวคิดข้อมูลเชิงสัมพันธ์ เราขอแนะนำให้ คุณอ่านหัวข้อแนะนำภาพรวมของความสัมพันธ์แรก

Referential Integrity และความสัมพันธ์ใน Power Pivot

Power Pivot ไม่ได้กำหนดให้บังคับใช้ Referential Integrity ระหว่างสองตารางในการระบุความสัมพันธ์ที่ถูกต้อง แต่จะมีการสร้างแถวว่างที่จุดสิ้นสุดของฝั่ง “หนึ่ง” ของความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่มแต่ละความสัมพันธ์ และใช้แถวว่างนี้เพื่อจัดการแถวที่ไม่ตรงกันทั้งหมดจากตารางที่เกี่ยวข้อง โดยทำงานอย่างมีประสิทธิภาพเช่นเดียวกับการรวมภายนอกของ SQL

ใน PivotTable ถ้าคุณจัดกลุ่มข้อมูลตามฝั่ง หนึ่ง ของความสัมพันธ์ ข้อมูลใดๆ ที่ไม่ตรงกันในฝั่ง กลุ่ม ของความสัมพันธ์จะได้รับการจัดกลุ่มไว้ด้วยกัน และรวมในผลรวมโดยมีหัวเรื่องเป็นแถวว่าง ส่วนหัวที่ว่างเปล่าจะมีลักษณะเทียบเท่ากับ "สมาชิกที่ไม่รู้จัก"

ความเข้าใจเกี่ยวกับสมาชิกที่ไม่รู้จัก

คุณอาจคุ้นเคยกับแนวคิดเกี่ยวกับสมาชิกที่ไม่รู้จัก ถ้าคุณได้ทำงานกับระบบฐานข้อมูลแบบหลายมิติ เช่น SQL Server Analysis Services ถ้าคุณยังไม่คุ้นเคยกับคำนี้ ตัวอย่างต่อไปนี้จะอธิบายว่าสมาชิกที่ไม่รู้จักคืออะไรและส่งผลต่อการคำนวณอย่างไร

สมมติว่า คุณกำลังสร้างการคำนวณที่หาผลรวมของยอดขายรายเดือนสำหรับแต่ละ store แต่คอลัมน์ในตารางการขายไม่มีค่าสำหรับชื่อ store Given ที่เชื่อมต่อตารางสำหรับจัดเก็บและยอดขายตามชื่อ store สิ่งที่คุณคาดว่าจะเกิดขึ้นในสูตรได้อย่างไร ฉันควร PivotTable จัดกลุ่ม หรือแสดงยอดขายที่ไม่เกี่ยวข้องกับร้านค้าที่มีอยู่ได้อย่างไร

ปัญหานี้เป็นปัญหาหนึ่งที่พบบ่อยในคลังข้อมูล ซึ่งเป็นแหล่งที่ตารางข้อมูลข้อเท็จจริงขนาดใหญ่ต้องสัมพันธ์กันในเชิงตรรกะกับตารางมิติที่มีข้อมูลเกี่ยวกับร้านค้า ภูมิภาค และแอททริบิวต์อื่นๆ ที่ถูกใช้เพื่อจัดประเภทและคำนวณข้อเท็จจริง ในการแก้ไขปัญหานี้ ข้อเท็จจริงใหม่ทั้งหมดที่ไม่สัมพันธ์กับเอนทิตีที่มีอยู่จะถูกกำหนดเป็นสมาชิกที่ไม่รู้จักเป็นการชั่วคราว ด้วยเหตุนี้ ข้อเท็จจริงที่ไม่สัมพันธ์กันจะปรากฏเป็นกลุ่มใน PivotTable ภายใต้ส่วนหัวที่ว่างเปล่า

การจัดการค่าว่างเทียบกับแถวว่าง

ค่าว่างจะแตกต่างจากแถวว่างที่จะถูกเพิ่มลงให้เหมาะสมกับสมาชิกที่ไม่รู้จัก ค่าว่างเป็นค่าพิเศษที่ใช้แทนค่า null สตริงว่าง และค่าอื่น ๆ หายไป สำหรับข้อมูลเพิ่มเติมเกี่ยวกับค่าว่าง ตลอดจนชนิดข้อมูล DAX อื่น ๆ ดูที่ชนิดข้อมูลในแบบจำลองข้อมูล

ด้านบนของหน้า

ขยายทักษะ Office ของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×