:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

ฟอรัมถาม-ตอบ Power Query, PivotTable, Power Pivot, Data Model, Chart, Dashboard
tingpcj
Member
Member
Posts: 70
Joined: Mon Jun 25, 2018 12:17 pm

QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#1

Post by tingpcj »

ขอสอบถามครับ

ผมทำ QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ ทำอย่างไรถึงจะเป็นข้อมูลเหมือนอย่างที่ต้นฉบับก่อนที่จะรวมครับ

และ

ขอสอบถามสูตรเพื่อทำ Report 1 ครับผม
(เอกสารตามไฟล์แนบครับ)
ขอขอบคุณครับผม
Attachments
Login Logout ประจำเดือนกรกฎาคม 2564.zip
(208.11 KiB) Downloaded 5 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#2

Post by snasui »

:D ตรวจสอบและแก้ไขข้อมูลวันที่ไม่ให้เป็นค่าลบครับ

การที่วันที่เป็นค่าลบจะแสดงเครื่องหมาย # จนเเต็มความกว้างเซลล์ ดูภาพด้านล่างประกอบ

นอกจากนี้ วันที่ที่เป็นค.ศ.ไม่ควรมีค่าเป็นหลักแสน ลองคีย์ =Value(Now()) ลงในเซลล์ใด ๆ เพื่อสังเกตว่าค่าวันและเวลาในปัจจุบันเป็นเท่าใด เพื่อจะได้เทียบได้ว่าวันที่ไม่ควรจะเกินค่านี้ไปอย่างผิดสังเกตครับ
Attachments
MinusDataTime.png
MinusDataTime.png (233.45 KiB) Viewed 80 times
tingpcj
Member
Member
Posts: 70
Joined: Mon Jun 25, 2018 12:17 pm

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#3

Post by tingpcj »

ผมเปลี่ยนแปลงวันที่ได้แล้วครับ วิธีการแก้ไขคือ ผมไปปรับรูปแบบ ค.ศ.2021 ให้เป็น พ.ศ.2564 ใน Data ทั้ง 5 ไฟล์ แล้วทำการ Power QUERY อีกครั้งครับ ขอบคุณครับผม
Untitled.jpg
Untitled.jpg (121.38 KiB) Viewed 74 times
tingpcj
Member
Member
Posts: 70
Joined: Mon Jun 25, 2018 12:17 pm

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#4

Post by tingpcj »

เมื่อทำการแก้ไขรูปแบบวันที่แล้ว สามารถทำ Report 1 โดยการเขียนสูตรอย่างไรได้บ้างครับผม (ที่ Sheet Report 1)
ขอบคุณครับ :D :D
Attachments
Login Logout ประจำเดือนกรกฎาคม 2564.zip
(79.04 KiB) Downloaded 3 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#5

Post by snasui »

:D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ A7 คีย์
    =IFERROR(INDEX(Total!B:B,AGGREGATE(15,6,ROW(Total!$B$2:$B$149)/(Total!$J$2:$J$149=$A$3),ROWS(A$7:A7))),"")
    Enter > Copy ไปด้านขวาถึง C7 > ลงด้านล่าง
  2. ที่ D7 คีย์
    =IFERROR(LOOKUP(2,1/(Total!$J$2:$J$149=$A$3)/(Total!$B$2:$B$149=$A7)/(INT(INDEX(Total!$E$2:$G$149,0,MATCH($B$3,Total!$E$1:$G$1,0)))=D$6),INDEX(Total!$E$2:$I$149,0,MATCH($B$3,Total!$E$1:$I$1,0)))-D$6,"")
    Enter > Copy ไปด้านขวาและลงด้านล่าง > จัดรูปแบบผลลัพธ์ให้เป็น h:mm
สูตรตามข้อ 2 จะเป็นการตัดเอาเวลาด้านหลังมาแสดง เพราะเข้าใจว่าโจทย์ต้องการเช่นนั้น หากเซลล์ B3 เป็น Total Login Time จะไม่สามารถแสดงเวลาได้เพราะค่าต้นทางเป็น Text ไม่ใช่วันที่และเวลาครับ
tingpcj
Member
Member
Posts: 70
Joined: Mon Jun 25, 2018 12:17 pm

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#6

Post by tingpcj »

:thup: :thup: :thup: สอบถามครับ ผมได้วางสูตรที่ 2 แล้วที่ช่อง D7 แล้วขยายสูตรไปตามรูปที่แนบครับ แต่เวลาของบรรทัดเดียวกัน เป็นเวลาเดียวกันหมดทั้งแถวเลยครับ ไม่เปลี่ยนตามวันที่ครับ รบกวนด้วยครับ ขอบคุณครับ
333.jpg
333.jpg (80.62 KiB) Viewed 62 times
User avatar
logic
Gold
Gold
Posts: 1511
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#7

Post by logic »

แนบไฟล์เอ็กเซลล์มาให้เพื่อน ๆ ช่วยกันดูดีกว่าครับ
tingpcj
Member
Member
Posts: 70
Joined: Mon Jun 25, 2018 12:17 pm

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#9

Post by tingpcj »

snasui wrote: Wed Jul 07, 2021 7:48 am :D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ A7 คีย์
    =IFERROR(INDEX(Total!B:B,AGGREGATE(15,6,ROW(Total!$B$2:$B$149)/(Total!$J$2:$J$149=$A$3),ROWS(A$7:A7))),"")
    Enter > Copy ไปด้านขวาถึง C7 > ลงด้านล่าง
  2. ที่ D7 คีย์
    =IFERROR(LOOKUP(2,1/(Total!$J$2:$J$149=$A$3)/(Total!$B$2:$B$149=$A7)/(INT(INDEX(Total!$E$2:$G$149,0,MATCH($B$3,Total!$E$1:$G$1,0)))=D$6),INDEX(Total!$E$2:$I$149,0,MATCH($B$3,Total!$E$1:$I$1,0)))-D$6,"")
    Enter > Copy ไปด้านขวาและลงด้านล่าง > จัดรูปแบบผลลัพธ์ให้เป็น h:mm
สูตรตามข้อ 2 จะเป็นการตัดเอาเวลาด้านหลังมาแสดง เพราะเข้าใจว่าโจทย์ต้องการเช่นนั้น หากเซลล์ B3 เป็น Total Login Time จะไม่สามารถแสดงเวลาได้เพราะค่าต้นทางเป็น Text ไม่ใช่วันที่และเวลาครับ
:thup: :thup: :thup: สอบถามครับ ผมได้วางสูตรที่ 2 แล้วที่ช่อง D7 แล้วขยายสูตรไปตามรูปที่แนบครับ แต่เวลาของบรรทัดเดียวกัน เป็นเวลาเดียวกันหมดทั้งแถวเลยครับ ไม่เปลี่ยนตามวันที่ครับ รบกวนด้วยครับ ขอบคุณครับ
333.jpg
Total&Report.xlsx
(67.72 KiB) Downloaded 2 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#10

Post by snasui »

:D ชีต Total คือเวลาเดียวกันตามภาพครับ
Attachments
LoginTime.png
LoginTime.png (80.19 KiB) Viewed 43 times
tingpcj
Member
Member
Posts: 70
Joined: Mon Jun 25, 2018 12:17 pm

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#11

Post by tingpcj »

snasui wrote: Wed Jul 07, 2021 12:32 pm :D ชีต Total คือเวลาเดียวกันตามภาพครับ
:D :D :D ขอบคุณท่านอาจารย์ครับ ผมเองดู DATA ไม่ถี่ถ้วนเองครับ :D :D :D

ขอบคุณมากครับผม
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#12

Post by Bo_ry »

เวลาติดลบเพราะ locale ของ Power Query
ข้อมูลใส่เป็นปี ค.ศ. ถูกต้องแล้ว

https://www.facebook.com/groups/ExcelSu ... 5130225474


Power Query จะแปลง data ตาม Locale ของ Power Query
ถ้า Set เป็น Thai ไว้
2021 จะถูกมองว่าเป็น ปี พ.ศ. 2021
เทียบเท่ากับ ปี ค.ศ 1478 ซึ่ง Power query มี พ.ศ นี้
แต่ใน Excel 1/1/1900 คือ 1
1478-1900 = -422 ปี ก็ประมาณ
-422*365 = -154030 วัน


Code: Select all

let
    Source = Folder.Files("D:\Login Logout ประจำเดือนกรกฎาคม 2564\DATA"),
    AddWorkbook = Table.AddColumn(Source, "WB", each Excel.Workbook([Content],true,true){0}[Data]),
    Combine = Table.Combine(AddWorkbook[WB]),
    Time = Table.TransformColumns(Combine, {"Total Login Time", each Time.From(Text.Trim(Text.Replace(Text.Select(_,{"0".."9",")"}),")",":"),":")),type time} )
in
    Time
Attachments
Total&Report1.xlsx
(39.35 KiB) Downloaded 2 times
tingpcj
Member
Member
Posts: 70
Joined: Mon Jun 25, 2018 12:17 pm

Re: QUERY แล้วผลลัพธ์เป็นรูปสี่เหลี่ยมครับ และ สอบถามสูตรสำหรับทำ Report ครับผม

#13

Post by tingpcj »

Bo_ry wrote: Thu Jul 08, 2021 12:23 am เวลาติดลบเพราะ locale ของ Power Query
ข้อมูลใส่เป็นปี ค.ศ. ถูกต้องแล้ว

https://www.facebook.com/groups/ExcelSu ... 5130225474


Power Query จะแปลง data ตาม Locale ของ Power Query
ถ้า Set เป็น Thai ไว้
2021 จะถูกมองว่าเป็น ปี พ.ศ. 2021
เทียบเท่ากับ ปี ค.ศ 1478 ซึ่ง Power query มี พ.ศ นี้
แต่ใน Excel 1/1/1900 คือ 1
1478-1900 = -422 ปี ก็ประมาณ
-422*365 = -154030 วัน


Code: Select all

let
    Source = Folder.Files("D:\Login Logout ประจำเดือนกรกฎาคม 2564\DATA"),
    AddWorkbook = Table.AddColumn(Source, "WB", each Excel.Workbook([Content],true,true){0}[Data]),
    Combine = Table.Combine(AddWorkbook[WB]),
    Time = Table.TransformColumns(Combine, {"Total Login Time", each Time.From(Text.Trim(Text.Replace(Text.Select(_,{"0".."9",")"}),")",":"),":")),type time} )
in
    Time

ขอบคุณท่านมากๆครับผม ได้ความรู้มากมายครับ :thup: :D :thup: :D
Post Reply