การแสดงหมายเลขสัปดาห์ของเดือนสำหรับวันที่ที่กำหนด

Article Number:040787

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

การตระเตรียม

เปิดแท็บ [แบบฟอร์ม] บนหน้าจอ [การตั้งค่าแอป] ของแอปของคุณ จากนั้นวางฟิลด์ทั้งหกต่อไปนี้บนฟอร์มแอป

  • (1) ช่อง “วันที่”
  • (2) ช่อง "ผลคำนวณ"
  • (3) ช่อง "ผลคำนวณ"
  • (4) ช่อง “ข้อความ”
  • (5) ช่อง "ผลคำนวณ"
  • (6) ช่อง “ข้อความ”

การตั้งค่าฟิลด์

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

การตั้งค่าแต่ละฟิลด์ตามที่อธิบายไว้ด้านล่างจะทำให้ฟิลด์ (6) แสดงหมายเลขสัปดาห์รายเดือนสำหรับวันที่ป้อนในฟิลด์ (1)
ฟิลด์ (2) ถึง (5) ใช้สำหรับการคำนวณระดับกลาง

(1) ช่อง “วันที่”

ฟิลด์นี้ใช้สำหรับป้อนวันที่ที่คุณต้องการคำนวณสัปดาห์ของเดือน

  • ชื่อฟิลด์: วันที่
  • รหัสฟิลด์ : วันที่

คุณไม่จำเป็นต้องกำหนดสูตรสำหรับฟิลด์นี้

(2) ช่อง "ผลคำนวณ"

ฟิลด์นี้จะแสดงวันที่ที่ป้อนในฟิลด์ (1) โดยระบุว่ามีกี่ วัน ผ่านไปตั้งแต่เริ่มต้นเดือน

  • ชื่อฟิลด์: วันที่ (ส่วนของวัน)

  • รหัสฟิลด์ : Date_Day_part

  • สูตร: กำหนดสูตรดังต่อไปนี้

    เนื้อหาได้รับการคัดลอกแล้ว
    DATE_FORMAT(Date, "d", "Asia/Tokyo")

(3) ช่อง "ผลคำนวณ"

ฟิลด์นี้คำนวณวันแรกของเดือนในเวลา UNIX (ค่าตัวเลข) โดยอิงจากวันที่ป้อนในฟิลด์ (1)

  • ชื่อฟิลด์: วันแรกของเดือน

  • รหัสฟิลด์ : วันแรกของเดือน

  • สูตร: กำหนดสูตรดังต่อไปนี้

    เนื้อหาได้รับการคัดลอกแล้ว
    Date-((Date_Day_part-1)*60*60*24)

(4) ช่อง “ข้อความ”

ฟิลด์นี้คำนวณวันในสัปดาห์ของวันแรกของเดือนโดยอิงจากวันที่คำนวณในฟิลด์ (3)

  • ชื่อฟิลด์: วันแรกของสัปดาห์ของเดือน

  • รหัสฟิลด์ : วันแรกของสัปดาห์ของเดือน

  • สูตร: เลือก [คำนวณอัตโนมัติ] และตั้งค่าสูตรดังต่อไปนี้

    เนื้อหาได้รับการคัดลอกแล้ว
    IF( ( ( (First_day_of_the_month / 60 / 60 / 24) - 0) / 7 ) - ROUNDUP(( ( (First_day_of_the_month / 60 / 60 / 24) - 0) / 7 ) , 0) = 0 , "Thursday",
        IF( ( ( (First_day_of_the_month / 60 / 60 / 24) - 1) / 7 ) - ROUNDUP(( ( (First_day_of_the_month / 60 / 60 / 24) - 1) / 7 ) , 0) = 0 , "Friday",
          IF( ( ( (First_day_of_the_month / 60 / 60 / 24) - 2) / 7 ) - ROUNDUP(( ( (First_day_of_the_month / 60 / 60 / 24) - 2) / 7 ) , 0) = 0 , "Saturday",
            IF( ( ( (First_day_of_the_month / 60 / 60 / 24) - 3) / 7 ) - ROUNDUP(( ( (First_day_of_the_month / 60 / 60 / 24) - 3) / 7 ) , 0) = 0 , "Sunday",
              IF( ( ( (First_day_of_the_month / 60 / 60 / 24) - 4) / 7 ) - ROUNDUP(( ( (First_day_of_the_month / 60 / 60 / 24) - 4) / 7 ) , 0) = 0 , "Monday",
                IF( ( ( (First_day_of_the_month / 60 / 60 / 24) - 5) / 7 ) - ROUNDUP(( ( (First_day_of_the_month / 60 / 60 / 24) - 5) / 7 ) , 0) = 0 , "Tuesday",
                  IF( ( ( (First_day_of_the_month / 60 / 60 / 24) - 6) / 7 ) - ROUNDUP(( ( (First_day_of_the_month / 60 / 60 / 24) - 6) / 7 ) , 0) = 0 , "Wednesday",
                  )
                )
              )
            )
          )
        )
      )

(5) ช่อง "ผลคำนวณ"

จากวันในสัปดาห์ที่คำนวณไว้ในฟิลด์ (4) ฟิลด์นี้จะคำนวณหมายเลขสัปดาห์ของเดือนสำหรับวันที่ที่แสดงไว้ในฟิลด์ (2)

  • ชื่อฟิลด์: หมายเลขสัปดาห์ รายเดือน

  • รหัสฟิลด์ : Monthly_week_number

  • สูตร: กำหนดสูตรต่อไปนี้ สูตรในตัวอย่างนี้สมมติว่าสัปดาห์เริ่มต้นใน วันอาทิตย์

    เนื้อหาได้รับการคัดลอกแล้ว
    IF(First_day_of_week_of_the_month="Sunday", IF(Date_Day_part<=7, 1, IF(ROUNDUP((Date_Day_part-7)/7)-ROUNDDOWN((Date_Day_part-7)/7)=0, ROUNDDOWN((Date_Day_part-7)/7)+1, ROUNDDOWN((Date_Day_part-7)/7)+2)), IF(First_day_of_week_of_the_month="Monday", IF(Date_Day_part<=6, 1, IF(ROUNDUP((Date_Day_part-6)/7)-ROUNDDOWN((Date_Day_part-6)/7)=0, ROUNDDOWN((Date_Day_part-6)/7)+1, ROUNDDOWN((Date_Day_part-6)/7)+2)), IF(First_day_of_week_of_the_month="Tuesday", IF(Date_Day_part<=5, 1, IF(ROUNDUP((Date_Day_part-5)/7)-ROUNDDOWN((Date_Day_part-5)/7)=0, ROUNDDOWN((Date_Day_part-5)/7)+1, ROUNDDOWN((Date_Day_part-5)/7)+2)), IF(First_day_of_week_of_the_month="Wednesday", IF(Date_Day_part<=4, 1, IF(ROUNDUP((Date_Day_part-4)/7)-ROUNDDOWN((Date_Day_part-4)/7)=0, ROUNDDOWN((Date_Day_part-4)/7)+1, ROUNDDOWN((Date_Day_part-4)/7)+2)), IF(First_day_of_week_of_the_month="Thursday", IF(Date_Day_part<=3, 1, IF(ROUNDUP((Date_Day_part-3)/7)-ROUNDDOWN((Date_Day_part-3)/7)=0, ROUNDDOWN((Date_Day_part-3)/7)+1, ROUNDDOWN((Date_Day_part-3)/7)+2)), IF(First_day_of_week_of_the_month="Friday", IF(Date_Day_part<=2, 1, IF(ROUNDUP((Date_Day_part-2)/7)-ROUNDDOWN((Date_Day_part-2)/7)=0, ROUNDDOWN((Date_Day_part-2)/7)+1, ROUNDDOWN((Date_Day_part-2)/7)+2)), IF(First_day_of_week_of_the_month="Saturday", IF(Date_Day_part<=1, 1, IF(ROUNDUP((Date_Day_part-1)/7)-ROUNDDOWN((Date_Day_part-1)/7)=0, ROUNDDOWN((Date_Day_part-1)/7)+1, ROUNDDOWN((Date_Day_part-1)/7)+2)), ) ) ) ) ) ) )

    หากคุณต้องการใช้ วันจันทร์ เป็นวันเริ่มต้นสัปดาห์ ให้แทนที่ "วันอาทิตย์" ในส่วนต่อไปนี้ของสูตรด้วย "วันจันทร์": First_day_of_week_of_the_month=" วันอาทิตย์" จากนั้น ปรับ วัน อื่นๆ ในสัปดาห์ในสูตรในลักษณะเดียวกัน โดยเลื่อนไปข้างหน้าหนึ่งวัน (แทนที่ "วันจันทร์" ด้วย "วันอังคาร" และทำอย่างนี้ต่อไป)
    สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับสูตรนี้ โปรดดู คำอธิบายสูตรสำหรับฟิลด์ (5)

(6) ช่อง “ข้อความ”

ฟิลด์นี้จะแสดงหมายเลขสัปดาห์ของเดือนสำหรับวันที่ป้อนในฟิลด์ (1) โดยอิงจากหมายเลขสัปดาห์ที่คำนวณในฟิลด์ (5) ในรูปแบบต่อไปนี้: "สัปดาห์ที่ N ของ MMMM YYYY"

  • ชื่อฟิลด์: หมายเลขสัปดาห์ รายเดือน (รูปแบบเต็ม)

  • รหัสฟิลด์ : Monthly_week_number_full

  • สูตร: เลือก [คำนวณอัตโนมัติ] และตั้งค่าสูตรดังต่อไปนี้

    เนื้อหาได้รับการคัดลอกแล้ว
    "Week "&Monthly_week_number&" of "&DATE_FORMAT(Date, "MMMM YYYY", "Asia/Tokyo")

คำอธิบายสูตรของฟิลด์ (5)

โดยอิงตามวันแรกของสัปดาห์ของเดือนที่คำนวณไว้ในฟิลด์ (4) ฟิลด์ (5) จะคำนวณหมายเลขสัปดาห์ของเดือนโดยใช้วันที่ที่แสดงไว้ในฟิลด์ (2)

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

ประเด็นที่ 1: ส่วนของวันมีขนาดใหญ่กว่าจำนวน วัน ในสัปดาห์แรกหรือไม่?

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

  • ตัวอย่าง: หากคุณใช้ วันอาทิตย์ เป็นจุดเริ่มต้นของสัปดาห์
    • หากวันแรกของสัปดาห์ของเดือนเป็น วันจันทร์ สัปดาห์แรกของเดือนจะมี 6 วัน
    • หากวันแรกของสัปดาห์ของเดือนเป็น วันอังคาร สัปดาห์แรกของเดือนจะมี 5 วัน

โดยการคํานวณว่าตัวเลข (ส่วนวัน) ที่แสดงในฟิลด์ (2) มากกว่าจํานวน วัน ในสัปดาห์แรกของเดือนหรือไม่ ฟิลด์ (5) จะกําหนดว่าวันที่ที่กําหนดอยู่ในสัปดาห์แรกหรือใน สัปดาห์ ที่สองหรือถัดไป

  • หากส่วนของวันเท่ากับหรือน้อยกว่าจำนวน วัน ในสัปดาห์แรกของเดือน:
    วันที่ได้รับการยอมรับว่าเป็นสัปดาห์แรกของเดือน
    ฟิลด์ (5) จะแสดง "1" ซึ่งแสดงถึงสัปดาห์แรก
  • หากส่วนของวันมีขนาดใหญ่กว่าจํานวน วัน ในสัปดาห์แรกของเดือน:
    วันที่ได้รับการยอมรับว่าเป็น สัปดาห์ ที่สองหรือถัดไปของเดือน
    ในกรณีนี้ การคํานวณจะดําเนินต่อไป การคํานวณที่ตามมาจะระบุว่าวันที่อยู่ในสัปดาห์ใดโดยเฉพาะ

จุดสาขา 2: ถ้าวันที่อยู่ใน สัปดาห์ ที่สองหรือถัดไป วันที่อยู่ในสัปดาห์ใด?

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

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

ถ้าไม่มีเศษเหลือจากการแบ่ง

ตัวเลขสัปดาห์สำหรับวันที่เป็นผลหารบวก 1 (แสดงถึงสัปดาห์แรกของเดือน)
ฟิลด์ (5) แสดงค่าที่ได้จากการบวก 1 เข้าไปในผลหาร

ตัวอย่างเมื่อวันที่ 1 ของเดือนคือ วันจันทร์ และวันที่ป้อนคือวันที่ 13:
หากวันแรกของเดือนเป็น วันจันทร์ สัปดาห์แรกของเดือนจะมี 6 วัน
13 (ส่วนวันของวันที่กำหนด) ลบด้วย 6 (จำนวน วัน ในสัปดาห์แรกของเดือน) เท่ากับ 7 แสดงว่าผ่านไปแล้ว 7 วัน นับตั้งแต่วันสุดท้ายของสัปดาห์แรก
7 หารด้วย 7 (จำนวน วัน ในหนึ่งสัปดาห์) เท่ากับ 1 โดยไม่เหลือเศษ
จากนั้นนำ 1 ซึ่งแทนสัปดาห์แรกของเดือน มาบวกเข้ากับผลหารของการคำนวณข้างต้น (1) ผลลัพธ์คือ 2 ซึ่งบ่งบอกว่าวันที่กำหนดนั้นอยู่ในสัปดาห์ที่สองของเดือน

หากมีเศษเหลือจากการแบ่ง

ตัวเลขสัปดาห์สำหรับวันที่เป็นผลหารบวก 2 (หมายถึงสัปดาห์แรกของเดือนบวกอีกหนึ่งสัปดาห์เพื่อครอบคลุม วัน ที่เหลืออยู่)
ฟิลด์ (5) แสดงค่าที่ได้จากการบวก 2 เข้าไปในผลหาร

ตัวอย่างเมื่อวันที่ 1 ของเดือนคือ วันจันทร์ และวันที่ป้อนคือวันที่ 15:
หากวันแรกของเดือนเป็น วันจันทร์ สัปดาห์แรกของเดือนจะมี 6 วัน
15 (ส่วนของวันในวันที่กำหนด) ลบด้วย 6 (จำนวน วัน ในสัปดาห์แรกของเดือน) เท่ากับ 9 แสดงว่าผ่านไปแล้ว 9 วัน นับตั้งแต่วันสุดท้ายของสัปดาห์แรก
9 หารด้วย 7 (จำนวน วัน ในหนึ่งสัปดาห์) เท่ากับ 1 (สัปดาห์) เหลือเศษ 2 (วัน)
จากนั้นนำ 2 (ซึ่งหมายถึงสัปดาห์แรกของเดือน บวกกับอีกหนึ่งสัปดาห์สำหรับครอบคลุม วัน ที่เหลือ) มาบวกกับผลหารของการคำนวณข้างต้น (1) ผลลัพธ์คือ 3 ซึ่งบ่งชี้ว่าวันที่กำหนดนั้นอยู่ในสัปดาห์ที่สามของเดือน

อ้างอิง: การใช้ฟิลด์ที่มีฟีเจอร์แผนภูมิ

หากต้องการรวมข้อมูลบันทึก ตามสัปดาห์ ของเดือน ให้ระบุฟิลด์ (6) (ฟิลด์ที่แสดงหมายเลขสัปดาห์รายเดือนสำหรับวันที่กำหนด) ซึ่งคุณได้ตั้งค่าไว้ในส่วนต่างๆ ข้างต้น ในส่วน [จัดกลุ่มตาม] ในการตั้งค่า กราฟ

  • ตัวอย่างการตั้งค่า กราฟScreenshot: The Graph settings screen

  • ตัวอย่างผลรวมScreenshot: The screen that shows the aggregate result

นอกจากนี้ หากมีการวางช่อง "วันที่" ไว้ในแบบฟอร์มแอปของคุณ คุณสามารถใช้คุณลักษณะแผนภูมิเพื่อรวบรวมข้อมูลบันทึก ตามสัปดาห์ ของปีได้
สามารถทำได้โดยระบุฟิลด์ "วันที่" และ [ตามสัปดาห์] ในส่วน [จัดกลุ่มตาม] ในการตั้งค่า กราฟ
ตัวอย่างเช่น หากค่าฟิลด์ "วันที่" คือ "30 มี.ค. 2022" ข้อมูลเรกคอร์ดจะถูกรวมเป็น "2022 13" เนื่องจากวันที่อยู่ในสัปดาห์ที่ 13 ของปี 2022

อ้างอิง: เทมเพลตแอป

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

เทมเพลตแอป "what_week_en.zip"

คลิกลิงก์เพื่อดาวน์โหลดไฟล์เทมเพลต (zip) และนำเข้าสู่ Kintone โดยไม่ต้องแตกไฟล์