Page 1 of 2
ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Wed Sep 18, 2013 12:01 pm
by yodpao.b
ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Capture.JPG
จากรูป
ต้องการดึงข้อมูลในชีต Data มาไว้ชีท 1โดยข้อแม้ให้ดูจาก
1.เซล D23 ชนิดเครื่องจักร
2.เซล D22 วันที่
ต้องการดึงข้อมูลมาไว้ที่ช่อง D24:D312 โดยให้ไปดูที่ช่อง D23 ว่าเป็นเครื่องจักรชนิดใด , D22 วันที่เท่าไร
ขอบคุณครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Wed Sep 18, 2013 12:20 pm
by bank9597

หากข้อมูลที่ต้องการเป็นตัวเลข สามารถใช้สูตร sum ได้ครับ
ที่ Sheet1 เซลล์ C24 คีย์ =SUM(IF(C$22=data!$B$5:$B$1031,IF(C$22+$B24=data!$D$5:$D$1031,IF(C$23=data!$E$4:$S$4,data!$E$5:$S$1031)))) กด ctrl+Shift+Enter คัดลอกไปทางขวา แล้วลงล่างพร้อมกันครับ
หรือ
ที่ Sheet1 เซลล์ C24 คีย์ =SUMPRODUCT(--(C$22=data!$B$5:$B$1031)*((C$22+$B24)=data!$D$5:$D$1031)*(C$23=data!$E$4:$S$4),data!$E$5:$S$1031) คัดลอกไปทางขวา แล้วลงล่างพร้อมกัน
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Wed Sep 18, 2013 12:33 pm
by yodpao.b
คำตอบไม่ได้ตามที่ต้องการครับ คุณ bank9597
คำตอบต้องได้ คอลัม C ต้องได้ 300 ทุกบรรทัด
คอลัม D ต้องได้ 250 ทุกบรรทัด
ครับ แต่จากสูตรที่ได้ ค่าได้ดังด้านล่างครับ
300
300
300
300
300
300
300
0
300
300
300
300
0
0
300
300
0
0
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Wed Sep 18, 2013 1:32 pm
by bank9597
yodpao.b wrote:คำตอบไม่ได้ตามที่ต้องการครับ คุณ bank9597
คำตอบต้องได้ คอลัม C ต้องได้ 300 ทุกบรรทัด
คอลัม D ต้องได้ 250 ทุกบรรทัด
ครับ แต่จากสูตรที่ได้ ค่าได้ดังด้านล่างครับ
300
300
300
300
300
300
300
0
300
300
300
300
0
0
300
300
0
0

อธิบายว่า ข้อมูลในคอลัมน์ D ชีท Data จะมีค่าไม่ตรงกับค่า วันที่+เวลา ในชีท1 ครับ เช่น
เช่น ชีท Data เซลล์ D293 เวลาที่แสดงให้เห็นคือ 16/9/2013 00:00:00 แต่มองในแถบสูตรแล้ว เป็น 15/9/2013 00:00:00
อีกตัวอย่างเช่น ถ้าเอา 16/9/2013+00:00:00 ก็จะได้ 16/9/2013 00:00:00 แต่ค่านี้ กลับไม่เท่ากับค่า 16/9/2013 00:00:00 ที่อยู่ในชีท Data คอลัมน์ D ครับ โดยจะมีค่าเหลื่อมล้ำกันอยู่ที่ 0.000000000931322574615479 ครับ
ดังนั้น สูตรที่ผมให้ไป ไม่ได้ผิด แต่ข้อมูลของคุณยอดเผ่า มีความผิดพลาดครับ
สามารถปรับสูตรให้สั้นลงอีก ดังนี้
=SUMPRODUCT(--((C$22+$B24)=data!$D$5:$D$1031)*(C$23=data!$E$4:$S$4),data!$E$5:$S$1031)
ลองดูข้อมูลใหม่ให้ถูกต้องก่อนครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Wed Sep 18, 2013 2:11 pm
by yodpao.b
" เช่น ชีท Data เซลล์ D293 เวลาที่แสดงให้เห็นคือ 16/9/2013 00:00:00 แต่มองในแถบสูตรแล้ว เป็น 15/9/2013 00:00:00"
จริงอย่างที่คุณบอกครับ งงเหมือนกันครับทำไมข้อมูลถึงเป็นแบบนี้
ผมอยากจะลองใช้ Index ได้ไหมครับ
ตอนนี้ผมได้ทำไฟล์ใหม่โดยเปลียน เวลาเป็นวันที่แทนครับดังรูป
Capture.JPG
และได้แนบไฟล์ใหม่มาด้วยครับ
ขอบคุณมากครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Wed Sep 18, 2013 2:35 pm
by bank9597

ตามนี้ครับ
ที่ C24 คีย์ =INDEX(data!$E$5:$S$1031,MATCH(B24,data!$D$5:$D$1031,0),MATCH($C$23,data!$E$4:$S$4,0)) คัดลอกลงมาครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Wed Sep 18, 2013 4:11 pm
by yodpao.b
รบกวนช่วยดูสูตรให้หน่อยครับ จากรูป
Capture.JPG
ในเซล E32 สูตรถูกต้องครับ จะอ้างอิงข้อแม้ที่เซล E30 กับ B32
แต่พอเป็น F32 สูตรใช้ไม่ได้ โดยที่ ในเซล F32 จะอ้างอิงข้อแม้ที่เซล F30 กับ C32
ช่วยดูให้ด้วยครับ
ขอบคุณมากครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Wed Sep 18, 2013 5:01 pm
by bank9597

ผมได้บอกไปแล้วว่า ข้อมูลวันที่ในชีท data กับ ชีทผลลัพธ์ ไม่เหมือนกัน ทำให้ผลลัพธ์ออกมาผิดพลาดครับ
ไม่ว่าเราจะใช้สูตร Index หรือ sumproduct หรือ sum(if ก็จะได้ค่าที่ตรงกัน
ดังนั้นคุณ yodpao.b ต้องการข้อมูลให้ถุกต้องก่อนครับ
ผมได้ทำการคัดลอก ข้อมูลวันที่ในชีท data เฉพาะของวันที่ 16/9/2013 มาวางที่ชีทผลลัพธ์ สูตรแสดงค่าถูกต้องทั้งหมด ลองดูตามไฟล์แนบครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Thu Sep 19, 2013 11:14 am
by yodpao.b
ขอบคุณครับเข้าใจแล้วครับว่าตรงไหนผิด
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Thu Sep 19, 2013 11:33 am
by yodpao.b
มีวิธีแก้ไขสูตร นี้ไหมครับ =MAX($B$32:B34)+"00:05:00"
ความหมายของสูตรคือ บรรทัดต่อไปให้ บวก อีก 5 นาที แต่พอมาถึงบรรทัดที่เริ่มวันใหม่ มันโชว์ค่า 16/9/2013 0:00:00 นี้ ซึ่งถูกต้องแต่พอเข้าไปดูในเซลค่าที่ได้กับเป็น 15/9/2013 0:00:00
จะแก้สูตรอย่างไรดีครับ ให้ค่าที่ได้เป็น วันที่ 16/9/2013 0:00:00 แท้จริง
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Thu Sep 19, 2013 12:14 pm
by bank9597
yodpao.b wrote:มีวิธีแก้ไขสูตร นี้ไหมครับ =MAX($B$32:B34)+"00:05:00"
ความหมายของสูตรคือ บรรทัดต่อไปให้ บวก อีก 5 นาที แต่พอมาถึงบรรทัดที่เริ่มวันใหม่ มันโชว์ค่า 16/9/2013 0:00:00 นี้ ซึ่งถูกต้องแต่พอเข้าไปดูในเซลค่าที่ได้กับเป็น 15/9/2013 0:00:00
จะแก้สูตรอย่างไรดีครับ ให้ค่าที่ได้เป็น วันที่ 16/9/2013 0:00:00 แท้จริง

ลองส่งข้อมูลเวลาที่ต้องใช้มาให้ผมดูครับ และเวลาที่ +00:05:00 ด้วยครับ
ผมจะดูข้อแตกต่างของเวลาทั้งสอง เพื่อจะปรับสูตรการบวกใหม่ครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Thu Sep 19, 2013 3:16 pm
by yodpao.b
ผมแนบไฟล์มาให้แล้วแต่ไม่แน่ใจว่าต้องการแบบนี้ไหม
โปรดดูก่อนครับ
แถว B ได้จากสูตร =MAX($B$32:B34)+"00:15:00" ข้อมูลที่ผิดสีเหลือง
แถว D ได้จากการ คัดลอก D3:D4 แล้วลากลงมา ข้อเสีย คือ ข้อมูลไม่ลง 00
สีเหลืองผิดจากการที่โชว์กับของจริงในเซลไม่เหมือนกัน
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Thu Sep 19, 2013 6:14 pm
by bank9597

ผมดูข้อมูลแล้วครับ ไม่สามารถทำให้มันเท่ากันได้ครับ ข้อมูลที่คุณ yodpao.b เอามานั้น ไม่ทราบว่า Export มาจากระบบหรือไม่
เนื่องจากข้อมูลเวลา มีหน่วยที่เยอะมาก ทำให้สิ่งที่เราเห็นไม่เป็นไปตามความจริงครับ สามารถทำได้อย่างเดียวคือ แปลงข้อมูลที่ Export มานั้น ให้เท่ากับค่าการบวกที่เราบวกเอง จึงจะสามารถดึงข้อมูลได้ถูกต้องครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Thu Sep 19, 2013 8:18 pm
by snasui
yodpao.b wrote:มีวิธีแก้ไขสูตร นี้ไหมครับ =MAX($B$32:B34)+"00:05:00"
ความหมายของสูตรคือ บรรทัดต่อไปให้ บวก อีก 5 นาที แต่พอมาถึงบรรทัดที่เริ่มวันใหม่ มันโชว์ค่า 16/9/2013 0:00:00 นี้ ซึ่งถูกต้องแต่พอเข้าไปดูในเซลค่าที่ได้กับเป็น 15/9/2013 0:00:00
จะแก้สูตรอย่างไรดีครับ ให้ค่าที่ได้เป็น วันที่ 16/9/2013 0:00:00 แท้จริง

ลองปรับสูตรเป็นตามด้านล่างครับ
ที่ Sheet1
เซลล์ E32 คีย์
=INDEX(data!$D$5:$R$1157,MATCH(B32,data!$C$5:$C$1157),MATCH(E$30,data!$D$4:$R$4,0))
Enter > Copy ไป F32 แล้ว Copy ลงด้านล่าง
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Fri Sep 20, 2013 1:40 pm
by yodpao.b
ขอบคุณมากครับ ทั้งอาจารย์และคุณ bank9597
ตอนนี้ทำตามอาจารย์ ใช้ได้แล้วครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Sat Sep 21, 2013 3:31 pm
by yodpao.b
เรียนอาจารย์ครับ
จากรุป
untitled11.JPG
ใช้สูตรดังนี้ =MAX($B$4:B4)+"00:05:00"
ความต้องการคือ ต้องการให้บรรทัดต่อไป ต่อไป บวกทุก 5 นาที
นอกจากสูตรด้านบนมีสูตรไหนอีกครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Sat Sep 21, 2013 5:38 pm
by bank9597
yodpao.b wrote:เรียนอาจารย์ครับ
จากรุป
untitled11.JPG
ใช้สูตรดังนี้ =MAX($B$4:B4)+"00:05:00"
ความต้องการคือ ต้องการให้บรรทัดต่อไป ต่อไป บวกทุก 5 นาที
นอกจากสูตรด้านบนมีสูตรไหนอีกครับ

หากมีข้อมูลอยู่บนบรรทัดแรกแล้ว บรรทัดต่อไปก็บวกกันธรรมดาได้เลยครับ
ที่ B5 คีย์ =B4+"00:05:00" คัดลอกลงมา
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Sat Sep 21, 2013 5:47 pm
by yodpao.b
ครับผมลองเองแล้ว
ค่าที่ได้ยังผิดอยู่ตอนเริ่มวันใหม่
ในช่องที่ผิดผมเลย บวกด้วย 1 ค่าที่ได้ ได้ผลตามที่ต้องการแล้ว
ขอบคุณมากครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Sat Sep 21, 2013 5:57 pm
by snasui
yodpao.b wrote:เรียนอาจารย์ครับ
จากรุป
untitled11.JPG
ใช้สูตรดังนี้ =MAX($B$4:B4)+"00:05:00"
ความต้องการคือ ต้องการให้บรรทัดต่อไป ต่อไป บวกทุก 5 นาที
นอกจากสูตรด้านบนมีสูตรไหนอีกครับ
ลองตามนี้ครับ
ที่ B5 คีย์
=ROUND(N(B4)+"00:05:00",10)
Enter > Copy ลงด้านล่าง
yodpao.b wrote:ครับผมลองเองแล้ว
ค่าที่ได้ยังผิดอยู่ตอนเริ่มวันใหม่
ในช่องที่ผิดผมเลย บวกด้วย 1 ค่าที่ได้ ได้ผลตามที่ต้องการแล้ว
ขอบคุณมากครับ
ไม่ควรทำเช่นนั้นเพราะไม่เป็นการอัตโนมัติ ลองตามสูตรด้านบน หากยังติดปัญหาสามารถถามมาได้เรื่อย ๆ ครับ
Re: ต้องการดึงข้อมูลจากอีกชีตมาเก็บไว้ทำอย่างไรครับ
Posted: Sat Sep 21, 2013 6:05 pm
by yodpao.b
เรียนอาจารย์ครับ
สูตรที่ 1 =INDEX(data!$D$5:$R$6917,MATCH(B30,data!$C$5:$C$6917),MATCH(E$28,data!$D$4:$R$4,0))
สูตรที่ 2 =INDEX(data!$D$5:$R$6917,MATCH(B30,data!$C$5:$C$6917,1),MATCH(E$28,data!$D$4:$R$4,0))
จากสูตรด้าน บน 2 สูตร ต่างกันที่ เลข 1
อยากทราบว่า ความหมายคือะไรครับ เพราะผลลัพไม่เหมือนกัน