Page 1 of 1
สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 1:11 pm
by nidnykung
จากครั้งที่แล้ว ผมขอสูตรในแนวนอนให้แสดงข้อมูลรายละเอียดจากชีทอ้างอิง แต่ทีนี้พอลองทำจริง มันมีหลายหมวด ก็คือมีหลายชีทครับ ชีทละหมวด ผมจึงอยากรบกวน ขอสูตรที่ทำให้มองหาข้อมูลในชีทอื่นๆ ด้วยครับ ว่าต้องใช้ตัวอะไรเชื่อมระหว่างสูตรหรือเปล่า ผมลองใส่ + กับ & มันก็ไม่ได้ครับ ดังที่แนบมานี้ครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 1:35 pm
by bank9597

รบกวนอธิบายขั้นตอนวิธีทำงานอีกครั้งได้ไหมครับ รวมถึงตัวอย่างคำตอบที่ถูกต้องด้วยครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 1:46 pm
by nidnykung
ครับ คือ ผมต้องการให้เราคีย์รหัส ในชีทหน้าหลัก แล้วให้ไปดึงรายละเอียดของชีทอ้างอิงในคอลัมน์ ชื่อสินค้า ราคาขาย และหน่วยมาลงให้ถูกต้องในชีทหน้าหลักครับ แต่ที่ทำอยู่นั้นดึงข้อมูลได้จากชีทลูกอมชีทเดียวครับ ซึ่งผมต้องการให้สามารถดึงข้อมูลจากชีทรองเท้า กับแก้วได้ด้วยครับ ก็คือให้ชีทหน้าหลักสามารถหารหัสได้ทั้ง 3 ชีทครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 2:06 pm
by bank9597

สูตรที่อยู่ในชีท ลูกอม เซลล์ A4 ลงมา สามารถใช้งานได้ตรงที่ต้องการหรือไม่ครับ หากตรงความต้องการแล้ว เราสามารถนำสูตรนี้ไปใช้ในชีทอื่นๆด้วยหลักการเดียวกันครับ
เว้นแต่ว่าความต้องการของคุณเป็นไปอีกแบบ ซึ่งไม่ใช่ดังที่ทำมาแล้วในไฟล์แนบ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 2:11 pm
by nidnykung
bank9597 wrote:
สูตรที่อยู่ในชีท ลูกอม เซลล์ A4 ลงมา สามารถใช้งานได้ตรงที่ต้องการหรือไม่ครับ หากตรงความต้องการแล้ว เราสามารถนำสูตรนี้ไปใช้ในชีทอื่นๆด้วยหลักการเดียวกันครับ
เว้นแต่ว่าความต้องการของคุณเป็นไปอีกแบบ ซึ่งไม่ใช่ดังที่ทำมาแล้วในไฟล์แนบ
ใช่ครับ ที่ผมต้องการ แต่ผมไม่ได้ต้องการแค่ในชีทลุกอมอย่างเดียวครับ ผมต้องการให้มันเอาของชีท รองเท้า และ แก้วด้วย ซึ่งผมไม่รู้ว่าจะพิมพ์สูตรว่าอย่างไร ให้มันดึงมาจาก 2 ชีทนี้ด้วยครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 4:52 pm
by bank9597

งานเข้าพอดีครับ เลยไม่ได้ตอบได้ทันที
ลองตามนี้ครับ
List ชื่อชีท และ รหัสที่อยู่ในชีทออกมาดังนี้
ในเซลล์ M4:N12
1 ลูกอม
2 ลูกอม
3 ลูกอม
4 รองเท้า
5 รองเท้า
6 รองเท้า
7 แก้ว
8 แก้ว
9 แก้ว
ที่เซลล์ I4 คีย์ =IFERROR(VLOOKUP($C4,$M$4:$N$11,2,0),"") คัดลอกลงมา
ที่เซลล์ E4 คีย์ =IFERROR(OFFSET(INDIRECT($I4&"!"&"$A$2"),0,MATCH($C4,INDIRECT($I4&"!"&"$2:$2"),0)+COLUMNS($E4:E4)-1,1),"")
คัดลอกไปทางขวามือแล้วลงล่างพร้อมกันครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 5:06 pm
by nidnykung
คือแบบนี้ครับ ในอันที่ผมแนบไฟล์ไป ตรงชีทหน้าหลัก column E จะใส่สูตร =OFFSET(ลูกอม!$A$2,0,MATCH($C7,ลูกอม!$2:$2,0)+COLUMNS($E7:E7)-1,1) ซึ่งก็คือให้มันไปดึงรายละเอียดจากชีทลูกอมมาแสดง แต่ทีนี้ว่า ในชีทลูกอมมีรหัสสุดแค่ 3 ซึ่งรหัสที่ 4 เป็นต้นไปอยู่คนละหมวด ก็เลยย้ายไปคนละชีทครับ ถ้าผมอยากให้มันหารหัสแบบในชีทลูกอม แต่มองในชีทรองเท้าด้วย ก็จะเป็น =OFFSET(รองเท้า!$A$2,0,MATCH($C7,รองเท้า!$2:$2,0)+COLUMNS($E7:E7)-1,1) แต่ทีนี้ว่า อยากให้มันมองหาทั้ง 2 ชีทนี้พร้อมกันเลย แบบว่า รหัส ตรงกับอันไหนในชีทใด ก็ดึงข้อมูลในชีทนั้นมาแสดงเลยครับ แล้วผมไม่รู้ว่าจะเชื่อมสูตรทั้ง 2 สูตรนี้อย่างไรดีครับ เพราะถ้าทำ column เพิ่มที่เขียนรหัสมันมีเยอะมากเลยครับ หรือว่าไม่มีทางอื่นแล้วครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 5:22 pm
by joo
ไม่แน่ใจว่าจุดประสงค์หลักคือต้องการทราบสินค้าคงคลังใช้หรือไม่

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

Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 5:30 pm
by nidnykung
joo wrote:ไม่แน่ใจว่าจุดประสงค์หลักคือต้องการทราบสินค้าคงคลังใช้หรือไม่

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

คือจะใช้ดูรายละเอียดแต่ละวันด้วยครับ แล้วก็ดูสินค้าคงคลังด้วย ซึ่ง ถ้าไม่แยกหมวด เอาไว้ใน database เดียว มันจะได้ชีทประมาณ เกือบ 300 เลยครับ เอามาใส่ในอันเดียวมันก็จะเป็นแนวนอนเกิน column ZZ อีกครับ ยากในการดูย้อนหลังครับ เพราะว่าข้อมูลอันนึงก็กินไปประมาณ 5 column ครับ อันนี้เป็นตัวอย่างครับก็เลยตัดมานิดหน่อยครับ ที่่เรียงข้อมูลแนวนอน เพื่อว่าจะให้แนวตั้งไว้ลงวันที่สินค้าเข้า-ออกครับ ซึ่งจะใช้เก็บข้อมูลต่อ ๆ กันทุกวันครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 5:31 pm
by bank9597

ที่ผมตอบไป ไม่ตรงในส่วนไหนบ้างครับ ลองอธิบายให้ฟัง หรือ ทำตัวอย่างคำตอบที่ถูกต้องมาให้ดูอีกครั้งครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 5:54 pm
by nidnykung
bank9597 wrote:
ที่ผมตอบไป ไม่ตรงในส่วนไหนบ้างครับ ลองอธิบายให้ฟัง หรือ ทำตัวอย่างคำตอบที่ถูกต้องมาให้ดูอีกครั้งครับ
คือ ผมลองใส่รหัส 9 แล้วมันแสดงผลเป็น N/A ซึ่งผมไม่รู้ว่ามันผิดตรงไหนครับ แล้วพอจะมีวิธีอื่นที่ไม่ต้องสร้าง column I, M,N หรือไม่ครับ ซึ่งผมคิดว่า มันน่าจะพอมีตัวอักษรอะไรที่ใช้ในการเชื่อม OFFSET ของชีทแต่ละชีท ให้มันมาแสดงผลในเซลเดียวหรือไม่ครับ เช่นว่า OFFSETลูกอม + OFFSETรองเท้า + OFFSET แก้ว ดูว่ารหัสตรงกับของชีทไหน ก็ดึงชีทนั้นมา แบบนี้มีไหมครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 6:07 pm
by bank9597

ลองตามนี้ครับ
ที่ I4 ปรับสูตรเป็น =VLOOKUP($C4,$M$4:$N$
12,2,0) คัดลอกลงมา
คุณต้องปรับสูตรอ้างถึงแหล่งข้อมูลที่มีอยู่ ว่ามันครอบคลุมหรือไม่
แล้วพอจะมีวิธีอื่นที่ไม่ต้องสร้าง column I, M,N หรือไม่ครับ ซึ่งผมคิดว่า มันน่าจะพอมีตัวอักษรอะไรที่ใช้ในการเชื่อม OFFSET ของชีทแต่ละชีท ให้มันมาแสดงผลในเซลเดียวหรือไม่ครับ เช่นว่า OFFSETลูกอม + OFFSETรองเท้า + OFFSET แก้ว ดูว่ารหัสตรงกับของชีทไหน ก็ดึงชีทนั้นมา แบบนี้มีไหมครับ

สำหรับตัวผมแล้วไม่คิดว่าจะมีครับ เพราะการดึงข้อมูลในลักษณะนี้จะต้องใช้สูตร Indirect เข้าช่วยอย่างแน่นอน
หรือคุณต้องใช IF เข้ามาดัก แต่คุณจะเจอกับสูตรที่ยาวยืด
การที่ผมแยกรายการชื่อชีท รหัสสินค้า ลงในเซลล์ M4:N12 นั้น ก็เพื่อให้คุณใส่ชื่อชีทและรหัสลงไปเป็นฐานข้อมูลไว้ โดยที่ไม่ต้องไปใส่ชื่อชีทลงในสูตรให้ยาว ซึ่งหากมีอยู่ 100 ชีท คุณก็ต้องเชื่อมสูตรให้ครอบคลุม 100 ชีท ซึ่งมันเป็นไปไม่ได้ สู้การลิสข้อมูลออกมาเป็นรายการแล้วค่อยเชื่อมโยงสูตรในภายหลังไม่ได้
การเก็บข้อมูลลักษณะนี้ ทำให้การดึงข้อมูลลำบากครับ การทำเหมือนที่คุณ Joo แนะนำคือการทำแบบ Database เก็บข้อมูลไว้ในชีทเดียวกันนั้น จะเหมาะสมมาก เพราะเราสามารถใช้สูตรง่ายกว่า สั้นกว่าและไม่ยุ่งยากครับ
Re: สูตรเชื่อมหลายๆ ชีทครับ
Posted: Mon May 21, 2012 6:22 pm
by nidnykung
อ่า OK เข้าใจแล้วครับ มันเป็นอย่างนี้นี่เอง เดี๋ยวผมลองทำตามดูก่อนครับ ถ้ามีปัญหาติดขัดยังไง จะแวะมารบกวนใหม่นะครับ ขอบคุณทุกคนมากครับ