: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 ครับผม

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
tingpcj
Member
Member
Posts: 70
Joined: Mon Jun 25, 2018 12:17 pm

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

#1

Post by tingpcj »

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

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

และ

ขอสอบถามสูตรเพื่อทำ Report 1 ครับผม
(เอกสารตามไฟล์แนบครับ)
ขอขอบคุณครับผม
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31076
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#2

Post by snasui »

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

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

นอกจากนี้ วันที่ที่เป็นค.ศ.ไม่ควรมีค่าเป็นหลักแสน ลองคีย์ =Value(Now()) ลงในเซลล์ใด ๆ เพื่อสังเกตว่าค่าวันและเวลาในปัจจุบันเป็นเท่าใด เพื่อจะได้เทียบได้ว่าวันที่ไม่ควรจะเกินค่านี้ไปอย่างผิดสังเกตครับ
You do not have the required permissions to view the files attached to this post.
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
You do not have the required permissions to view the files attached to this post.
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
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31076
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
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
You do not have the required permissions to view the files attached to this post.
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 ครับผม

#8

Post by tingpcj »

ครับผม ไฟล์แนบครับ
Total&Report.xlsx
You do not have the required permissions to view the files attached to this post.
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
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31076
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#10

Post by snasui »

:D ชีต Total คือเวลาเดียวกันตามภาพครับ
You do not have the required permissions to view the files attached to this post.
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
You do not have the required permissions to view the files attached to this post.
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