Page 1 of 1
สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Wed Jun 22, 2011 8:25 pm
by flying123
คือผมมือใหม่ที่ได้เข้ามาศึกษา Excel เองอ่ะครับ ซื้อหนังสือมาหลายเล่ม แต่ก้อยังไม่ค่อยเข้าใจเท่าไร
เลยมีเรื่องมารบกวนให้อาจารย์ช่วยชี้แนะหน่อยนะครับ
ถ้าจะขอถามเป็นข้อๆจะเสียมารยาทรึเปล่าครับ
ยังไงผมขออนุญาตนะครับ อ้างอิงตามไฟลนะครับ
1. ผมอยากให้ใส่คำค้นในช่องค้นหา แล้วจะแสดงไฟลตามคำค้น หรือไม่ก้อตามโค้ดอ่ะครับ
2. ช่องคงเหลือ จะต้องเชื่อมโยงกับไฟลสต๊อกการ์ด และไฟลฐานข้อมูลใช่รึเปล่าครับ ผมทำลิ้งง่ายๆแบบนั้นมันจะใช้ได้รึเปล่าครับ
3. ในช่องค่า MIN มันจะมีสูตรอะไรบ้างที่จะแสดงช่องให้เปลี่ยนสีได้อ่ะครับ ทั้งเมื่อถึงค่า MIN แล้วเมื่อสินค้า = 0 ครับ
4. ในความเป็นจริง ผมอยากให้มันทำรายการสั่งซื้อในแต่ละวัน แต่ผมยังนึกภาพไม่ออกอ่ะครับ ว่าจะต้องทำอย่างไร อยากให้ท่านอาจารย์ช่วยชีแนะหน่อยนะครับ
5. ชีทที่ชื่อ ผู้ใช้คนหา เนี่ย ในการใช้จริงมันสมควรที่จะต้องอยู่ไฟลเดียวไม่รวมกับฐานข้อมูล และสต๊อกการ์ดใช่รึเปล่าครับ
ผมรบกวนตามนี้หน่อยนะครับ ถ้าผมทำอะไรเสียมารยาทไปขอโทษนะครับ พอดีมือใหม่จริงๆ และจริงๆแล้วสินค้า และวัตถุดิบในโรงงานมีเป็นหลักพันชนิดอ่ะครับ แต่จะลองทำแค่นี้ก่อน
ถ้าเอกเซลไปได้ดี ก้ออยากจะพัฒนาตัวเองด้วยนะครับ ตอนนี้ลองอ่านหนังสือ VB แล้ว แต่ก้อยังมึนๆ ทำได้แต่มาโครง่ายๆอ่ะครับ
รบกวนช่วยชี้แนะหน่อยนะครับ
ขอบคุณครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Wed Jun 22, 2011 8:40 pm
by flying123
อันนี้เป็นไฟลตัวอย่างที่ใช้อยู่น่ะครับ
แบบว่าผมเองก้อจะตัดบนไฟลนี้เลย
ผมใช้ก้อจะดูจะเห็นทั้งหมดเลย โดยอ้างอิงการใช้ Comment กันซึ่งผมคิดว่าไม่น่าปลอดภัยเท่าไร ซึ่งข้อมูลในแต่ละเดือนจะใช้การกรุ๊ป และการยกยอดเป็นการใช้สูตรอ้างอิงเซลเอาอ่ะคัรบ
ถ้ายูสเซอร์ มาแก้ไขอะไรได้แบบนี้
ผมคงต้องศึกษาเรื่องการใช้พาสเวิดในการเปิดดูแล้วมั้งครับ
ขอบคุณครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Wed Jun 22, 2011 9:16 pm
by snasui

ลองตามไฟล์แนบครับ
ปุ่มค้นหาไม่จำเป็นต้องใช้ครับ เมื่อผู้ใช้คีย์ข้อความที่ D2 โปรแกรมจะดึงข้อมูลมาให้เลย โดยมีวิธีการคือ
1. ที่ชีทฐานข้อมูลเซลล์ I3 คีย์ 0 เพื่อเป็นค่าเริ่มต้นให้กับข้อม 2
2. ที่ชีทฐานข้อมูลเซลล์ I4 คีย์สูตรเพื่อให้หมายเลขลำดับสำหรับรายการที่ผู้ใช้ค้นหา
=IF(ISNUMBER(SEARCH(ผู้ใช้ค้นหา!$D$2,B4)),LOOKUP(9.9999999999999E+307,I$3:I3)+1,"")
Enter > Copy ลงด้านล่าง
3. ที่ชีท ผู้ใช้ค้นหา เซลล์ H4 คีย์สูตรเพื่อหาว่าพบกี่รายการ
=LOOKUP(9.99999999999999E+307,ฐานข้อมูล!I:I)
Enter
4. ที่ชีท ผู้ใช้ค้นหา เซลล์ A6 (แทรกคอลัมน์ก่อน) คีย์สูตรเพื่อให้ลำดับค่าที่พบ
=IF(ROWS(A$6:A6)>$H$4,"",ROWS(A$6:A6))
Enter > Copy ลงด้านล่าง
5. ที่ชีท ผู้ใช้ค้นหา เซลล์ B6 คีย์สูตรเพื่อแสดงรายการที่พบ
=IF(N($A6),LOOKUP($A6,ฐานข้อมูล!$I:$I,ฐานข้อมูล!A:A),"")
Enter > Copy ไปทางขวาและลงด้านล่าง
6. ที่ชีท ผู้ใช้ค้นหา เซลล์ H6 คีย์สูตรเพื่อให้ค่า MIN หากยอดคงเหลือเป็น 0
=IF(F6=0,"MIN","")
Enter > Copy ลงด้านล่าง
7. กำหนดค่า Min ให้เป็นสีแดงเพื่อให้เห็นชัดโดยคลุม H6:H17 > คลิก Home > Condition Formatting > New Rule > Format only cells that contain > ตรง Format only cells with: ชองแรกปล่อยตาม Default > ช่องถัดมาเลือก equal to > ช่องถัดมาคีย์ MIN > กดปุ่ม Format > กำหนดค่าตามต้องการ
สำหรับการ Link เซลล์มาในฐานข้อมูลหากว่าแต่ละบรรทัดมีตำแหน่งคงที่สามารถทำได้ครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Wed Jun 22, 2011 9:46 pm
by mepmep
อาจารย์ครับ
แล้วถ้าเราต้องการหาทั้งตารางฐานข้อมูลละครับ พอทำตัวอย่างได้ไหม เอาไฟล์แนบข้างบนที่อาจารย์แนบละครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Wed Jun 22, 2011 9:49 pm
by snasui

เปลี่ยนสูตรที่นี่ที่เดียวก็น่าจะพอครับ
จาก
=IF(ISNUMBER(SEARCH(ผู้ใช้ค้นหา!$D$2,B4)),LOOKUP(9.9999999999999E+307,I$3:I3)+1,"")
เป็น
=IF(ISNUMBER(SEARCH(ผู้ใช้ค้นหา!$D$2,
B4&C4&D4&E4&F4&...)),LOOKUP(9.9999999999999E+307,I$3:I3)+1,"")
... หมายถึงต้องการจะหาจากกี่คอลัมน์ก็เชื่อมเข้าไปตามต้องการครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Wed Jun 22, 2011 10:05 pm
by flying123
มีคำถามนิดหน่อยอ่ะครับ
รบกวนตามไฟลแนบหน่อยนะครับ
กำลังมึนได้ที่เลยครับ
รบกวนอีกนิดนะครับ ถ้าไอ้ตรงสูตรค่า MIN อ่ะครับ จะต้องการ Fill Colour แทนอ่ะครับ ไม่เอาแค่ตัวอักษรพอจะมีวิธีไม๊ครับ
ขอบคุณครับ
ตรงส่วนสต๊อกการ์ดอาจารย์พอจะมีอะไรแนะนำไหมครับ ในการตัด
ขอบคุณครับ
ปล. ตอนนี้กำลังไล่สูตรไล่ตารางตามอาจารย์มึนเลยครับ แหะๆ ขอบคุณคร้าบ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Wed Jun 22, 2011 10:58 pm
by snasui

ลองดูไฟล์แนบประกอบครับ
ที่ชีท ฐานข้อมูล เซลล์ H4 คีย์
=IF(COUNTA('STOCK CARD'!D7:D14)=0,"",MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("/"&'STOCK CARD'!D7&"/"&'STOCK CARD'!D8&"/"&'STOCK CARD'!D9&"/"&'STOCK CARD'!D10&"/"&'STOCK CARD'!D11&"/"&'STOCK CARD'!D12&"/"&'STOCK CARD'!D13&"/"&'STOCK CARD'!D14,"/////","/"),"////","/"),"///","/"),"//","/"),2,SUMPRODUCT(LEN('STOCK CARD'!$D$7:$D$14))+COUNTIF('STOCK CARD'!$D$7:$D$14,"?*")-1))
ปกติการใช้สูตรเราควรเขียนแล้วสามารถนำไปใช้กับเซลล์อื่น ๆ ได้ด้วย แต่สำหรับสูตรนี้หาก Copy ไปใช้กับเซลล์อื่นจะต้องเปลี่ยนการอ้างอิงเซลล์ใหม่ทั้งหมด เนื่องจากข้อมูลที่ Link มานั้นไม่อยู่ในรูปแบบที่เหมาะกับการ Link เข้าฐานข้อมูล
ส่วนที่ถามว่าถ้าไม่กรอกตัวเลขมาจากไหน ถ้าไม่กรอกจะแสดงว่าต้องการดูทั้งหมดครับ หากไม่กรอกแล้วไม่ให้แสดงเลยต้องเปลี่ยนสูตรที่ I4 เป็น
=IF(ผู้ใช้ค้นหา!$D$2="","",IF(ISNUMBER(SEARCH(ผู้ใช้ค้นหา!$D$2,B4)),LOOKUP(9.9999999999999E+307,I$3:I3)+1,""))
Enter > Copy ลงด้านล่าง
ส่วนการใส่เฉพาะสีในคอลัมน์ H ลอง
สังเกตดูจากไฟล์แนบ โดยการคลุม H6:H17 > Home > Conditional Formatting > Manage Rule > Edit Rule
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Thu Jun 23, 2011 10:01 am
by flying123
อาจารย์ครับ ผมยังสงสัยอยู่ว่า ในชี้ผู้ใช้ค้นหา ใส่สูตรเพื่อดึงข้อมูลมาจากชีทฐานข้อมูล
แล้วดูแล้วสูตรมันก้อครอบคลุมถึง โค้ดด้วย แต่ทำไมเมื่อผมเซิชโดยใส่โค้ดแล้วมันถึงไม่แสดงอ่ะครับ
ขอบคุณครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Thu Jun 23, 2011 11:12 am
by snasui

ส่งไฟล์ที่เป็นปัญหา เขียนระบุปัญหาและระบุตัวอย่างคำตอบที่ต้องการมาในไฟล์ด้วย จะได้เห็นง่าย ๆ ครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Thu Jun 23, 2011 1:05 pm
by flying123
รบกวนหน่อยนะครับ
ขอบคุณครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Thu Jun 23, 2011 8:01 pm
by snasui

ช่วยสรุปให้ชัดเจนว่าให้ค้นหาจากคอลัมน์ไหน หรือจะค้นหาจากทุกคอล้มน์ครับ เพราะที่ผ่านมาใช้การค้นหาจากคอลัมน์ B ของฐานข้อมูล แต่คำถามล่าสุดย้ายมาเป็นคอลัมน์ A
หากต้องการค้นหาจากหลาย ๆ คอลัมน์ผมตอบไว้แล้วตามตามนี้
snasui wrote:

เปลี่ยนสูตรที่นี่ที่เดียวก็น่าจะพอครับ
จาก
=IF(ISNUMBER(SEARCH(ผู้ใช้ค้นหา!$D$2,B4)),LOOKUP(9.9999999999999E+307,I$3:I3)+1,"")
เป็น
=IF(ISNUMBER(SEARCH(ผู้ใช้ค้นหา!$D$2,
B4&C4&D4&E4&F4&...)),LOOKUP(9.9999999999999E+307,I$3:I3)+1,"")
... หมายถึงต้องการจะหาจากกี่คอลัมน์ก็เชื่อมเข้าไปตามต้องการครับ
ลองปรับปรุงสูตรมาดูก่อนจะได้คุ้นเคยครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Fri Jul 01, 2011 1:58 pm
by flying123
หลังจากลองเล่นปรับสูตรดูแล้ว นะครับ ใช้งานได้หลากหลายดีครับอาจารย์
แต่มันติดนิดนึงคือบางคอลั่ม มันไม่แสดงตามที่เราคีสูตรไว้น่ะครับ
รบกวนอาจารย์ช่วยดูหน่อยนะครับ
ขอบคุณครับ
Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ
Posted: Fri Jul 01, 2011 2:21 pm
by snasui

ที่ชีท RY เซลล์ F6 สูตรคือ
=IF(N($A6),LOOKUP($A6,Sheet2!$I:$I,
Sheet2!A:A),"")
ส่วนที่เซลล์ F7 สูตรคือ
=IF(N($A7),LOOKUP($A7,Sheet2!$I:$I,
Sheet2!E:E),"")
ซึ่งที่ถูกก็คือสูตรที่สองนี้ครับ ให้ Copy สูตรนี้ไปใช้กับ F6 ครับ จากนั้นให้จัด Format ให้เป็น General หรือคลุมข้อมูลที่คอลัมน์ F แล้วกดแป้น Ctrl+1