Page 1 of 1

ดึงข้อมูลรายการสั่งซื้อจากชีทอื่นยังไงคะ?

Posted: Thu May 21, 2015 2:41 pm
by minifondue
Image

พอดีติดปัญหานี้มาประมาณ 2 วันแล้วค่ะ เนื่องจากว่า อยากจะดึงข้อมูลการสั่งซื้อของลูกค้าจากชีท sales มาแสดงในตารางรายการสั่งซื้อ(ตรงกรอบสีแดง) ค่ะ โดยที่ในชีท doc แค่กรอกรหัส Sales Transaction ก็ดึงข้อมูลการสั่งซื้อของรหัสนั้นมาเลยค่ะ รบกวนผู้รู้ช่วยชี้แนะด้วยนะคะ

ขอบคุณค่ะ

Re: ดึงข้อมูลรายการสั่งซื้อจากชีทอื่นยังไงคะ?

Posted: Thu May 21, 2015 2:44 pm
by DhitiBank
ทำได้ครับ แต่ต้องเห็นด้วยว่าชีท sales หน้าตาเป็นอย่างไร ข้อมูลรหัสสินค้า ชื่อสินค้า ราคา ฯลฯ อยู่ตำแหน่งไหนในชีทนั้น จึงจะเขียนสูตรได้ครับ
หากแนบเป็นไฟล์ตัวอย่าง (excel) มาด้วยจะสะดวกมากครับ เพราะจะได้ทดสอบสูตรได้ เพื่อนๆ จะได้ไม่ต้องมาคีย์ข้อมูลดิบเอง

Re: ดึงข้อมูลรายการสั่งซื้อจากชีทอื่นยังไงคะ?

Posted: Thu May 21, 2015 2:52 pm
by minifondue
ไฟล์ข้อมูล อยู่ด้านล่างนะคะ รบกวนด้วยค่ะ

Re: ดึงข้อมูลรายการสั่งซื้อจากชีทอื่นยังไงคะ?

Posted: Thu May 21, 2015 3:00 pm
by minifondue
ไฟล์นะคะ
รบกวนด้วยค่ะ

Re: ดึงข้อมูลรายการสั่งซื้อจากชีทอื่นยังไงคะ?

Posted: Thu May 21, 2015 3:22 pm
by DhitiBank
ลองแบบนี้ครับ
ที่ชีท doc
ที่ B16 คีย์
=IFERROR(INDEX(sales!$E$12:$P$12,SMALL(IF(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),TRANSPOSE(ROW($1:$12))),(ROWS($B$16:B16)-1)*2+1)),"")
กด Ctrl+Shift ค้าง แล้วกด Enter

ที่ C16 คีย์
=IFERROR(INDEX(sales!$E$11:$P$11,SMALL(IF(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),TRANSPOSE(ROW($1:$12))),(ROWS($B$16:C16)-1)*2+1)),"")
กด Ctrl+Shift ค้าง แล้วกด Enter

ที่ D16 คีย์
=IFERROR(INDEX(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),SMALL(IF(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),TRANSPOSE(ROW($1:$12))),(ROWS($B$16:C16))*2)),0)
กด Ctrl+Shift ค้าง แล้วกด Enter

ที่ E16 คีย์
=IFERROR(INDEX(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),SMALL(IF(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),TRANSPOSE(ROW($1:$12))),(ROWS($B$16:D16)-1)*2+1)),0)
กด Ctrl+Shift ค้าง แล้วกด Enter

ที่ F16 คีย์
=IF(B16<>"",D16*E16,0)
Enter

จากนั้นคัดลอกสูตรทั้งหมดลงไปถึงแถวที่ 21 ครับ

Re: ดึงข้อมูลรายการสั่งซื้อจากชีทอื่นยังไงคะ?

Posted: Thu May 21, 2015 3:46 pm
by minifondue
DhitiBank wrote:ลองแบบนี้ครับ
ที่ชีท doc
ที่ B16 คีย์
=IFERROR(INDEX(sales!$E$12:$P$12,SMALL(IF(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),TRANSPOSE(ROW($1:$12))),(ROWS($B$16:B16)-1)*2+1)),"")
กด Ctrl+Shift ค้าง แล้วกด Enter

ที่ C16 คีย์
=IFERROR(INDEX(sales!$E$11:$P$11,SMALL(IF(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),TRANSPOSE(ROW($1:$12))),(ROWS($B$16:C16)-1)*2+1)),"")
กด Ctrl+Shift ค้าง แล้วกด Enter

ที่ D16 คีย์
=IFERROR(INDEX(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),SMALL(IF(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),TRANSPOSE(ROW($1:$12))),(ROWS($B$16:C16))*2)),0)
กด Ctrl+Shift ค้าง แล้วกด Enter

ที่ E16 คีย์
=IFERROR(INDEX(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),SMALL(IF(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),TRANSPOSE(ROW($1:$12))),(ROWS($B$16:D16)-1)*2+1)),0)
กด Ctrl+Shift ค้าง แล้วกด Enter

ที่ F16 คีย์
=IF(B16<>"",D16*E16,0)
Enter

จากนั้นคัดลอกสูตรทั้งหมดลงไปถึงแถวที่ 21 ครับ
ความจริง ราคาข้าวจริงๆ ต่อหน่วย จะเป็นที่ไฮไลต์สีน้ำเงินนะคะ รบกวนแก้สูตรให้นิดนึงนะคะ ขอบคุณค่ะ เคยใช้แต่ VLOOKUP เจอสูตรซ้อนสูตรแบบนี้มึนเลยค่ะ

Image

Re: ดึงข้อมูลรายการสั่งซื้อจากชีทอื่นยังไงคะ?

Posted: Thu May 21, 2015 4:24 pm
by DhitiBank
ปรับสูตรที่ D16 เป็นแบบนี้ครับ
=IFERROR(INDEX(sales!$E$12:$P$12,SMALL(IF(OFFSET(sales!$E$12,MATCH($C$6,sales!$A$13:$A$24,0),,,12),TRANSPOSE(ROW($1:$12))),ROWS($B$16:B16)*2)),"")
กด Ctrl+Shift+Enter แล้วคัดลอกลงด้านล่างครับ :)

Re: ดึงข้อมูลรายการสั่งซื้อจากชีทอื่นยังไงคะ?

Posted: Thu May 21, 2015 4:39 pm
by minifondue
ขอบคุณมากๆเลยนะคะคุณ DhitiBank ไม่เคยใช้สูตรพวกนี้เลยค่ะ
ขอบคุณอีกครั้งนะคะ