แชร์ผ่าน


ใช้การแปลข้อมูลสําหรับตารางปฏิทิน

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

สกรีนช็อตแสดงวิชวลรายงานที่แสดงชื่อของเดือนและวัน

เวอร์ชันที่แปลทําให้วิชวลอ่านง่ายในภาษาที่รองรับของคุณ

สกรีนช็อตแสดงวิชวลรายงานที่แสดงชื่อของเดือนและวันที่แปลเป็นภาษาท้องถิ่น

กลยุทธ์ในบทความนี้สําหรับการแปลคอลัมน์ตารางปฏิทินใช้ Power Query และภาษาคิวรี M Power Query มีฟังก์ชันที่มีอยู่แล้วภายใน เช่น Date.MonthNameซึ่งยอมรับ Date พารามิเตอร์และส่งกลับชื่อปฏิทินแบบยึดข้อความ ถ้าโครงการ .pbix ของคุณมี en-US เป็นภาษาและตําแหน่งที่ตั้งเริ่มต้น ฟังก์ชัน Power Query ต่อไปนี้จะประเมินเป็นค่าข้อความของเดือนมกราคม

Date.MonthName( #date(2023, 1, 1) )

ฟังก์ชันยอมรับ Date.MonthName พารามิเตอร์สตริงที่เป็นตัวเลือกที่สองเพื่อส่งผ่านภาษาและตําแหน่งที่ตั้งเฉพาะ

Date.MonthName( #date(2023, 1, 1), "en-US")

ถ้าคุณต้องการแปลชื่อเดือนเป็นภาษาฝรั่งเศส คุณสามารถส่งผ่านค่าข้อความของ fr-FR ได้

Date.MonthName( #date(2022, 12, 1), "fr-FR")

สร้างตารางการแปลปฏิทิน

ดูที่ ตารางภาษา ที่ใช้ในตัวอย่างก่อนหน้านี้ ซึ่งรวมถึงคอลัมน์ DefaultCulture

สกรีนช็อตแสดงตารางภาษาซึ่งเป็นคอลัมน์วัฒนธรรมเริ่มต้น

Power Query ถูกสร้างขึ้นบนภาษาคิวรีที่ใช้งานได้ที่ชื่อว่า M ด้วยภาษานั้น คุณสามารถทําซ้ําๆ ผ่านแถวของ ตารางภาษา เพื่อค้นหาภาษาและวัฒนธรรมเริ่มต้นที่โครงการสนับสนุน คุณสามารถเขียนคิวรีที่ใช้ ตาราง Languages เป็นแหล่งข้อมูลเพื่อสร้างตารางการแปลปฏิทินด้วยชื่อของเดือนหรือวันในสัปดาห์

แผนภาพแสดงตารางภาษาที่ใช้เป็นแหล่งที่มาของการแปลง Power Query เพื่อสร้างตารางชื่อเดือนและวัน

นี่คือรหัส M ที่สร้าง ตารางชื่อเดือนที่แปล

let
  Source = #table( type table [ MonthNumber = Int64.Type ], List.Split({1..12},1)),
  Translations = Table.AddColumn( Source, "Translations",
    each
      [ MonthDate = #date( 2022, [ MonthNumber ], 1 ),
        Translations = List.Transform(Languages[DefaultCulture], each Date.MonthName( MonthDate, _ ) ),
        TranslationTable = Table.FromList( Translations, null ),
        TranslationsTranspose = Table.Transpose(TranslationTable),
        TranslationsColumns = Table.RenameColumns(
          TranslationsTranspose,
          List.Zip({ Table.ColumnNames( TranslationsTranspose ),
            List.Transform(Languages[Language],
            each "MonthNameTranslations" & _ ) })
          )
      ]
  ),
  ExpandedTranslations = Table.ExpandRecordColumn(Translations,
                                                  "Translations",
                                                  { "TranslationsColumns" },
                                                  { "TranslationsColumns" }),
  ColumnsCollection = List.Transform(Languages[Language], each "MonthNameTranslations" & _ ),
  ExpandedTranslationsColumns = Table.ExpandTableColumn(ExpandedTranslations,
                                                        "TranslationsColumns",
                                                        ColumnsCollection,
                                                        ColumnsCollection ),
  TypedColumnsCollection = List.Transform(ColumnsCollection, each {_, type text}),
  QueryOutput = Table.TransformColumnTypes(ExpandedTranslationsColumns, TypedColumnsCollection)
in
  QueryOutput

เคล็ดลับ

คุณสามารถคัดลอกและวางรหัส M จาก ตัวอย่าง ProductSalesMultiLanguage.pbix เมื่อใดก็ตามที่คุณต้องการเพิ่มตารางการแปลปฏิทินไปยังโครงการของคุณ

ถ้าตารางภาษาประกอบด้วยสี่แถวสําหรับภาษาอังกฤษ ภาษาสเปน ภาษาฝรั่งเศส และภาษาเยอรมัน คิวรีตารางชื่อเดือนที่แปลจะสร้างตารางที่มีคอลัมน์การแปลสี่คอลัมน์ดังที่แสดงในภาพหน้าจอต่อไปนี้

สกรีนช็อตแสดงคิวรีตารางชื่อเดือนที่แปลและตารางที่สร้างขึ้น

ในทํานองเดียวกัน คิวรีที่ ชื่อว่า ตาราง ชื่อวันที่แปล จะสร้างตารางที่มีการแปลชื่อวันทํางาน

สกรีนช็อตแสดงคิวรีตารางชื่อวันที่แปลและตารางที่สร้างขึ้น

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

สกรีนช็อตแสดงเครื่องมือแก้ไขขั้นสูงด้วยภาษาที่เลือกในการบล็อกลําดับการจัดเรียง

กําหนดค่าการเรียงลําดับ

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

  • กําหนดค่าคอลัมน์การแปลในตารางชื่อเดือนที่แปลเพื่อใช้คอลัมน์ที่เรียงลําดับ MonthNumber
  • กําหนดค่าคอลัมน์คําแปลในตารางชื่อวันที่แปลเพื่อใช้คอลัมน์การเรียงลําดับ DayNumber

สกรีนช็อตแสดงคอลัมน์ของชื่อเดือนที่ถูกตั้งค่าเพื่อเรียงลําดับตามตัวเลขเดือน

รวมตารางการแปล

ขั้นตอนถัดไปคือการรวมสองตารางลงในแบบจําลองข้อมูลด้วยตารางปฏิทิน ตาราง ปฏิทิน เป็นตารางที่มีการคํานวณโดยยึดตามนิพจน์ Data Analysis Expressions (DAX) ต่อไปนี้

สกรีนช็อตแสดงตารางที่มีรหัส DAX

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

สกรีนช็อตแสดงมุมมองแบบจําลองพร้อมตารางชื่อเดือนที่แปลในความสัมพันธ์กับตารางปฏิทิน

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

สกรีนช็อต แสดงมุมมองตารางของตารางชื่อเดือนที่แปล

เพิ่มความสัมพันธ์ระหว่างตารางพารามิเตอร์เขตข้อมูลใหม่เหล่านี้และ ตารางภาษา เพื่อให้แน่ใจว่ากลยุทธ์การกรองภาษาทํางานตามที่คาดไว้

สกรีนช็อตแสดงตารางภาษาในความสัมพันธ์กับตารางที่แปลหลายตาราง

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

สกรีนช็อตแสดงค่าวันสําหรับแกน x ในวิชวล

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

สกรีนช็อตแสดงตัวกรองด้วยภาษาที่เลือกและวิชวลที่สะท้อนการเลือก