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
:D ลองตามไฟล์แนบครับ

ปุ่มค้นหาไม่จำเป็นต้องใช้ครับ เมื่อผู้ใช้คีย์ข้อความที่ 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
:D เปลี่ยนสูตรที่นี่ที่เดียวก็น่าจะพอครับ

จาก

=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
:D ลองดูไฟล์แนบประกอบครับ

ที่ชีท ฐานข้อมูล เซลล์ 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
:D ส่งไฟล์ที่เป็นปัญหา เขียนระบุปัญหาและระบุตัวอย่างคำตอบที่ต้องการมาในไฟล์ด้วย จะได้เห็นง่าย ๆ ครับ

Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ

Posted: Thu Jun 23, 2011 1:05 pm
by flying123
รบกวนหน่อยนะครับ

ขอบคุณครับ

Re: สอบถามเรื่องการแสดงรายการสินค้า เมื่อเราพิมพ์ค้นหาครับ

Posted: Thu Jun 23, 2011 8:01 pm
by snasui
:D ช่วยสรุปให้ชัดเจนว่าให้ค้นหาจากคอลัมน์ไหน หรือจะค้นหาจากทุกคอล้มน์ครับ เพราะที่ผ่านมาใช้การค้นหาจากคอลัมน์ B ของฐานข้อมูล แต่คำถามล่าสุดย้ายมาเป็นคอลัมน์ A

หากต้องการค้นหาจากหลาย ๆ คอลัมน์ผมตอบไว้แล้วตามตามนี้
snasui wrote: :D เปลี่ยนสูตรที่นี่ที่เดียวก็น่าจะพอครับ

จาก

=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
:D ที่ชีท 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