Page 1 of 2

ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 4:11 pm
by suka
สวัสดีค่ะ
ขอความช่วยเหลือเรื่องสูตรโดยระบุ ชื่อลูกค้า วันที่เริ่มต้น และ วันที่สิ้นสุด มีเงื่อนไขที่ชีท databaseให้ดึงข้อมูลที่คอลัมน์ A,B,E ตามเงื่อนไขเฉพาะในคอลัมน์ F ที่มีค่าว่าง
ให้นำข้อมูลที่มีในช่วงที่ระบุมาแสดงที่ชีท Form เซลล์ B5 ดึงมาจาก เซลล์ B2:B10 ชีท database
ชีท Form เซลล์ C5 ดึงมาจาก เซลล์ A2:A10 ชีท database และชีท Form เซลล์ D5 ดึงมาจากเซลล์ E2:E10 ชีท database ตามตัวอย่างไฟล์แนบค่ะ

ขอบคุณค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 4:23 pm
by snasui
:D จากตัวอย่างเข้าเงื่อนไขถึง 4 รายการ แต่เหตุใดดึงมาแสดงแค่ 2 รายการครับ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 5:25 pm
by suka
ขออภัยค่ะอาจารย์ ที่ทำไฟล์ตัวอย่างไม่เหมือนจริง
ไฟล์ที่ใช้งานจริงที่ชีท Database บางบิลมีการบันทึกหลายรายการก็จะมียอดย่อย และ ยอดรวมสุทธิ
ไฟล์ตัวอย่างเดิมไม่ได้ทำยอดย่อยมาด้วย ได้เพิ่มคอลัมน์ยอดย่อยเข้ามาขอส่งไฟล์ใหม่ค่ะ
เงื่อนไขคอลัมน์ก็เปลี่ยนไปค่ะ หากค่าที่เซลล์ H ว่าง ให้นำข้อมูลที่มีในเซลล์ B,A,G มาแสดงค่ะ
ขอบคุณค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 5:47 pm
by snasui
:lol: คำถามเดิมครับ จากตัวอย่างที่ยกมา เข้าเงื่อนไข 4 รายการ เหตุใดดึงมาแสดงแค่ 2 รายการครับ หากบางรายการมีการแบ่งบันทึกหลายรายการ ในจำนวนหลายรายการที่ว่านั้น จำเป็นจะต้องให้รหัสที่ไม่เหมือนกัน ไม่เช่นนั้นจะถูกดึงมาทุกรายการครับ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 6:25 pm
by suka
snasui wrote:หากบางรายการมีการแบ่งบันทึกหลายรายการ ในจำนวนหลายรายการที่ว่านั้น จำเป็นจะต้องให้รหัสที่ไม่เหมือนกัน ไม่เช่นนั้นจะถูกดึงมาทุกรายการครับ
อาจารย์คะ พอจะมีวิธีใดช่วยให้ดึงมาเฉพาะยอดสุทธิมายอดเดียวในหนึ่งเลขเลขเอกสารไหมคะ
จากไฟล์ตัวอย่างเช่นดึง เลขที่เอกสาร 54020194 ซึ่งเข้าเงื่อนไข 3 รายการ ต้องการดึงยอดรวมสุทธิ 45475 มาแค่หนึ่งค่ะ
งานที่ใช้จริงบางบิลบันทึกมากกว่าสิบค่ะ มีข้อมูลที่บันทึกไว้มากอยู่ค่ะหากเป็นเช่นนี้จะดึงมาอย่างใดขอคำแนะนำทางแก้หน่อยค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 6:39 pm
by snasui
:lol: ตอบไปแล้วครับ
snasui wrote:หากบางรายการมีการแบ่งบันทึกหลายรายการ ในจำนวนหลายรายการที่ว่านั้น จำเป็นจะต้องให้รหัสที่ไม่เหมือนกัน
ที่น่าจะเป็นคำถามคือหากต้องการให้รหัสที่ไม่เหมือนกันสามารถทำอย่างไรได้บ้าง คำตอบคือสามารถเพิ่มคอลัมน์ที่ระบุรายการที่ของเอกสารที่มีหลายรายการ เราสามารถที่จะเลือกดึงรายการลำดับที่ใด ๆ มาแสดงก็ได้ครับ

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

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 7:18 pm
by suka
snasui wrote:สามารถเพิ่มคอลัมน์ที่ระบุรายการที่ของเอกสารที่มีหลายรายการ เราสามารถที่จะเลือกดึงรายการลำดับที่ใด ๆ มาแสดงก็ได้ครับ
ไม่ทราบว่าเข้าใจถูกต้องไหม หากเราต้องการให้ดึงรายการลำดับสุดท้ายมาแสดง เราต้องเพิ่มคอลัมน์ที่ชีท Database หมายถึงมีการบันทึกครั้งต่อไปใช่ไหมคะ

และหากต้องการดึงรายการลำดับสุดท้ายที่ชึท Database ที่บันทึกก่อนหน้านี้ควรต้องดึงด้วยสูตรไหม หากต้องใช้สูตรการเพิ่มคอลัมน์ก็คงต้องเพิ่มที่ชีท Form หรือไม่คะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 7:33 pm
by snasui
:lol: ผมกำลังอธิบายตามภาพด้านล่างครับ รายการเดียวกันที่มีการบันทึกหลายรายการ ก็น่าจะมีลำดับที่กำกับ (ตามที่ระบายสีเหลืองในภาพ) เพื่อให้สามารถแยกแยะออกจากรายการอื่น ๆ ได้ครับ หากจะแสดงเป็นเงื่อนไขว่าต้องการนำรายการลำดับที่เท่าไรมาแสดงไว้ในชีท Form ก็ไม่น่าจะมีปัญหาอะไรครับ

ตามด้านล่างนี้ผมอ่านแล้วไม่เข้าใจครับ :ard:
suka wrote:ไม่ทราบว่าเข้าใจถูกต้องไหม หากเราต้องการให้ดึงรายการลำดับสุดท้ายมาแสดง เราต้องเพิ่มคอลัมน์ที่ชีท Database หมายถึงมีการบันทึกครั้งต่อไปใช่ไหมคะ

และหากต้องการดึงรายการลำดับสุดท้ายที่ชึท Database ที่บันทึกก่อนหน้านี้ควรต้องดึงด้วยสูตรไหม หากต้องใช้สูตรการเพิ่มคอลัมน์ก็คงต้องเพิ่มที่ชีท Form หรือไม่คะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 8:07 pm
by suka
suka wrote:เราต้องเพิ่มคอลัมน์ที่ชีท Database หมายถึงมีการบันทึกครั้งต่อไปใช่ไหมคะ
หมายถึงไฟล์ที่ใช้งานจริง หากมีการบันทึกงานใหม่ จะต้องเพิ่มคอลัมน์เพื่อระบุลำดับที่กำกับ
ขอบคุณตัวอย่างค่ะ หากอาจารย์ไม่ทำตัวอย่างให้ดู คงต้องคิดอีกหลายวันค่ะ
suka wrote:และหากต้องการดึงรายการลำดับสุดท้ายที่ชึท Database ที่บันทึกก่อนหน้านี้ควรต้องดึงด้วยสูตรไหม หากต้องใช้สูตรการเพิ่มคอลัมน์ก็คงต้องเพิ่มที่ชีท Form หรือไม่คะ
อาจารย์คะ ปัญหาคือไฟล์งานที่ใช้งานจริงเวลานี้ เป็นเหมือนไฟล์ตัวอย่างที่ชีท Database มีข้อมูลมากเราจะมาทำเลขกำกับอย่างไรคะ
จึงคิดว่าเป็นไปได้ไหมข้อมูลเดิมที่มีนี้เราสามารถเพิ่มคอลัมน์เพื่อกำกับลำดับที่คือดึงข้อมูลสุดท้ายของเลขที่เอกสารค่ะ ที่ชีท Form แทนจะได้ไหมค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Jan 10, 2012 9:25 pm
by snasui
suka wrote:หมายถึงไฟล์ที่ใช้งานจริง หากมีการบันทึกงานใหม่ จะต้องเพิ่มคอลัมน์เพื่อระบุลำดับที่กำกับ
:D ถูกต้องครับ
suka wrote:ปัญหาคือไฟล์งานที่ใช้งานจริงเวลานี้ เป็นเหมือนไฟล์ตัวอย่างที่ชีท Database มีข้อมูลมากเราจะมาทำเลขกำกับอย่างไรคะ
ไม่ใช่เรื่องยากที่จะทำเช่นนั้น แต่เนื่องจากต้องการรายการสุดท้ายผมจึงเขียนสูตรมาให้ลองใช้ดูก่อน

ลองคีย์สูตรที่ชีท Form ตามนี้ครับ
  1. เซลล์ A5 คีย์
    =SMALL(IF(FREQUENCY(IF($B$2=Database!$C$2:$C$10,IF($D$2<=Database!$A$2:$A$10,IF($D$3>=Database!$A$2:$A$10,IF(Database!$H$2:$H$10="",MATCH(Database!$B$2:$B$10,Database!$B$2:$B$10,0))))),ROW(Database!$A$2:$A$10)-ROW(Database!$A$2)+1),ROW(Database!$A$2:$A$10)-ROW(Database!$A$2)+1),ROWS(B$5:B5))
    Ctrl+Shift+Enter เนื่องจากเต็มข้อจำกัดของ Excel 2003 คือซ้อนฟังก์ชั่นได้แค่ 7 ชั้นเท่านั้น จึงไม่สามารถซ่อนค่าผิดพลาดได้ หากต้องการซ่อนให้ใช้ Condition Formatting มาช่วยครับ
  2. ที่เซลล์ B5 คีย์
    =IF(ISNUMBER(A5),INDEX(Database!$B$2:$B$10,$A5),"")
    Enter > Copy ลงด้านล่าง
  3. ที่เซลล์ C5 คีย์
    =IF(ISNUMBER(A5),LOOKUP(2,1/(Database!$B$2:$B$10=$B5),Database!$A$2:$A$10),"")
    Enter > Copy ลงด้านล่าง
  4. ที่เซลล์ D5 คีย์
    =IF(ISNUMBER(A5),LOOKUP(2,1/(Database!$B$2:$B$10=$B5),Database!$G$2:$G$10),"")
    Enter > Copy ลงด้านล่าง

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Wed Jan 11, 2012 10:33 am
by suka
ขอบพระคุณมากๆ ค่ะ สามารถดึงข้อมูลได้ตามที่ต้องการแล้วค่ะ

อาจารย์คะ ขอรบกวนขอสูตรที่เซลล์ D11 ที่ชีท Form ค่ะ ต้องการให้สูตรหักค่าลบในวงเล็บให้ด้วยค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Wed Jan 11, 2012 1:27 pm
by suka
snasui wrote:ไม่ใช่เรื่องยากที่จะทำเช่นนั้น แต่เนื่องจากต้องการรายการสุดท้ายผมจึงเขียนสูตรมาให้ลองใช้ดูก่อน

ลองคีย์สูตรที่ชีท Form ตามนี้ครับ
เซลล์ A5 คีย์
=SMALL(IF(FREQUENCY(IF($B$2=Database!$C$2:$C$10,IF($D$2<=Database!$A$2:$A$10,IF($D$3>=Database!$A$2:$A$10,IF(Database!$H$2:$H$10="",MATCH(Database!$B$2:$B$10,Database!$B$2:$B$10,0))))),ROW(Database!$A$2:$A$10)-ROW(Database!$A$2)+1),ROW(Database!$A$2:$A$10)-ROW(Database!$A$2)+1),ROWS(B$5:B5))
Ctrl+Shift+Enter เนื่องจากเต็มข้อจำกัดของ Excel 2003 คือซ้อนฟังก์ชั่นได้แค่ 7 ชั้นเท่านั้น จึงไม่สามารถซ่อนค่าผิดพลาดได้ หากต้องการซ่อนให้ใช้ Condition Formatting มาช่วยครับ
ขอแจ้งผลการทดลองใช้สูตร :aru: มีการคำนวณเซลล์ใช้เวลาคำนวณนานมาก ๆๆ

อาจารย์คะ ขอรบกวนอีกรอบค่ะ ไฟล์งานที่ใช้งานได้ทำการเพิ่มคอลัมน์เพื่อกำกับลำดับที่ตามตัวอย่างของอาจารย์แล้วค่ะ
ขอรบกวนสูตรอีกรอบค่ะ ขอบคุณค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Wed Jan 11, 2012 6:10 pm
by snasui
:D
suka wrote:อาจารย์คะ ขอรบกวนขอสูตรที่เซลล์ D11 ที่ชีท Form ค่ะ ต้องการให้สูตรหักค่าลบในวงเล็บให้ด้วยค่ะ
สูตรไม่ได้ผิดครับ แต่ผิดที่ชีท Database เซลล์ H10 ซึ่งเป็น Text การคีย์ตัวเลขเป็นลบ ให้คีย์ลบนำหน้าได้เลย ไม่จำเป็นต้องล้อมด้วยวงเล็บ หากจะล้อมด้วยวงเล็บ ก็ไม่จำเป็นต้องใส่เครื่องหมายลบ หากประสงค์จะให้เป็นตัวเลขสามารถเลือกได้เพียงอย่างใดอย่างหนึ่งเท่านั้นครับ

กรณีต้องการลดความซับซ้อนลงและให้ลำดับในชีท Database ลองตามนี้ครับ
  1. ที่ชีท Database เซลล์ C2 คีย์สูตรเพื่อให้ลำดับ
    =COUNTIF(B$2:B2,B2)
    Enter > Copy ลงด้านล่าง
  2. ที่ชีท Form เซลล์ A4 คีย์สูตรเพื่อนับว่าพบกี่รายการ
    =SUMPRODUCT(--($B$2=Database!$D$2:$D$10),--($D$2<=Database!$A$2:$A$10),--($D$3>=Database!$A$2:$A$10),--(Database!$I$2:$I$10=""),--(Database!$C$2:$C$10=1))
    Enter
  3. ที่ชีท Form เซลล์ A5 List แถวที่จะนำมาใช้
    =IF(ROWS(A$5:A5)>$A$4,"",SMALL(IF($B$2=Database!$D$2:$D$10,IF($D$2<=Database!$A$2:$A$10,IF($D$3>=Database!$A$2:$A$10,IF(Database!$I$2:$I$10="",IF(Database!$C$2:$C$10=1,ROW(Database!$A$2:$A$10)-ROW(Database!$A$2)+1))))),ROWS(B$5:B5)))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  4. เซลล์อื่น ๆ ในชีท Form ใช้สูตรเดิม
และถึงแม้จะลดความซับซ้อนลงบ้างแล้วก็ตามแต่หากใช้สูตรเป็นจำนวนมากก็ไม่ได้ทำให้การคำนวณเร็วขึ้นมากนักครับ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Wed Jan 11, 2012 8:52 pm
by suka
ขอบพระคุณมากๆค่ะ สูตรล่าสุดนี้คำนวณได้ไวกว่าสูตรแรกมากค่ะ ได้ตรงตามที่ต้องการแล้วค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Thu Feb 02, 2012 7:35 pm
by suka
snasui wrote:
กรณีต้องการลดความซับซ้อนลงและให้ลำดับในชีท Database ลองตามนี้ครับ
  1. ที่ชีท Database เซลล์ C2 คีย์สูตรเพื่อให้ลำดับ
    =COUNTIF(B$2:B2,B2)
    Enter > Copy ลงด้านล่าง
  2. ที่ชีท Form เซลล์ A4 คีย์สูตรเพื่อนับว่าพบกี่รายการ
    =SUMPRODUCT(--($B$2=Database!$D$2:$D$10),--($D$2<=Database!$A$2:$A$10),--($D$3>=Database!$A$2:$A$10),--(Database!$I$2:$I$10=""),--(Database!$C$2:$C$10=1))
    Enter
  3. ที่ชีท Form เซลล์ A5 List แถวที่จะนำมาใช้
    =IF(ROWS(A$5:A5)>$A$4,"",SMALL(IF($B$2=Database!$D$2:$D$10,IF($D$2<=Database!$A$2:$A$10,IF($D$3>=Database!$A$2:$A$10,IF(Database!$I$2:$I$10="",IF(Database!$C$2:$C$10=1,ROW(Database!$A$2:$A$10)-ROW(Database!$A$2)+1))))),ROWS(B$5:B5)))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  4. เซลล์อื่น ๆ ในชีท Form ใช้สูตรเดิม
และถึงแม้จะลดความซับซ้อนลงบ้างแล้วก็ตามแต่หากใช้สูตรเป็นจำนวนมากก็ไม่ได้ทำให้การคำนวณเร็วขึ้นมากนักครับ
ค่ะใช้สูตรจำนวนมากโปรแกรมคำนวณช้ามากตามที่อาจารย์เตือนมาเลยค่ะ
snasui wrote:ที่ชีท Database เซลล์ C2 คีย์สูตรเพื่อให้ลำดับ
=COUNTIF(B$2:B2,B2)
ได้แก้โดยใช้สูตรด้านบน ที่ชีท Database คลิกหัวคอลัมน์ C => คักลอกสูตร => Paste Special => Values and number formats
ขอบคุณอาจารย์ให้สูตร =COUNTIF(B$2:B2,B2) มาเป็นตัวช่วยแก้หมดปัญหาเรื่องคำนวณช้าได้อย่างรวดเร็วค่ะ

วันนี้ขอรบกวนเรื่องสูตรเพิ่มจากสูตรเดิมค่ะ
เพิ่มเงื่อนไขหากที่เซลล์ B1 ชีท Form ได้มีการเลือกกลุ่มเอกสารให้ดึงข้อมูลตามประเภทเอกสารที่เลือก
หากที่เซลล์ B1 ชีท Form ว่างไม่ระบุประเภทเอกสารก็ให้ดึงข้อมูลทุกรายการทุกประเภทจากชีท Database หากคอลัมน์ J ว่างมาค่ะ ขอบคุณค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Thu Feb 02, 2012 9:53 pm
by snasui
:D ลองตามไฟล์แนบครับ

ผมเพิ่ม คอลัมน์ A ขึ้นมาเพื่อช่วยในการหาเงื่อนตามเงื่อนไข เนื่องจาก Excel 2003 ไม่สามารถเขียนเงื่อนไขได้เกินกว่า 7 ชั้น
  1. เซลล์ A4 คีย์สูตรเพื่อนับตามเงื่อนไขในกรณีที่ C1 เป็นค่าว่าง
    =IF(C1<>"",0,SUMPRODUCT(--($C$2&1=Database!$E$2:$E$10&Database!$D$2:$D$10),--($E$2<=Database!$A$2:$A$10),--($E$3>=Database!$A$2:$A$10),--(Database!$J$2:$J$10="")))
    Enter
  2. เซลล์ A5 ทำการ List บรรทัดที่เข้าเงื่อนไข กรณีที่ C1 เป็นค่าว่าง
    =IF(ROWS(A$5:A5)>$A$4,"",SMALL(IF($C$2&1=Database!$E$2:$E$10&Database!$D$2:$D$10,IF($E$2<=Database!$A$2:$A$10,IF($E$3>=Database!$A$2:$A$10,IF(Database!$J$2:$J$10="",ROW(Database!$A$2:$A$10)-ROW(Database!$A$2)+1)))),ROWS(C$5:C5)))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  3. เซลล์ B4 คีย์สูตรเพื่อนับจำนวนตามเงื่อนไขกรณี C1 ไม่เป็นค่าว่าง
    =SUMPRODUCT(--($C$2&1=Database!$E$2:$E$10&Database!$D$2:$D$10),--($E$2<=Database!$A$2:$A$10),--($E$3>=Database!$A$2:$A$10),--(Database!$J$2:$J$10=""),--(Database!$B$2:$B$10=$C$1))
    Enter
  4. เซลล์ B5 ทำการ List บรรทัดที่เข้าเงื่อนไข
    =IF(ROWS(B$5:B5)>$B$4,"",SMALL(IF($C$2&1=Database!$E$2:$E$10&Database!$D$2:$D$10,IF($E$2<=Database!$A$2:$A$10,IF($E$3>=Database!$A$2:$A$10,IF(Database!$J$2:$J$10="",IF(Database!$B$2:$B$10=$C$1,ROW(Database!$A$2:$A$10)-ROW(Database!$A$2)+1))))),ROWS(C$5:C5)))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  5. เซลล์ C5 คีย์สูตรเพื่อ List เลขที่เอกสาร
    =IF(COUNT(A5:B5),INDEX(Database!$C$2:$C$10,LOOKUP(2,1/($A5:$B5<>""),$A5:$B5)),"")
    Enter > Copy ลงด้านล่าง
  6. เซลล์ D5 คีย์สูตรเพื่อ List วันที่เอกสาร
    =IF(COUNT(A5:B5),LOOKUP(2,1/(Database!$C$2:$C$10=$C5),Database!$A$2:$A$10),"")
    Enter > Copy ลงด้านล่าง
  7. เซลล์ E5 คีย์สูตรเพื่อ List จำนวนเงิน
    =IF(COUNT(A5:B5),LOOKUP(2,1/(Database!$C$2:$C$10=$C5),Database!$I$2:$I$10),"")
    Enter > Copy ลงด้านล่าง

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Fri Feb 03, 2012 11:03 am
by suka
อาจารย์คะ ขอรับไฟล์ตัวอย่างสูตรไปทดลองใช้ก่อนนะคะ ขอบพระคุณมากค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Feb 14, 2012 1:30 pm
by suka
อาจารย์คะ ขอบคุณค่ะสูตรที่ให้มานี้ยากมากและแสนจะฉลาดทำงานได้ดีแล้วค่ะ

แต่อยากจะขอรบกวนเพิ่มจากสูตรเดิมนี้อีกข้อค่ะ ถ้าหากไม่เลือกรหัสและชื่อลูกค้า ที่เซลล์ C2:C3 ชีท Form ว่างไม่ระบุรหัสและชื่อลูกค้า
ก็ให้ดึงข้อมูลทุกรายการจากชีท Database คอลัมน์ J ว่างมาค่ะ
ขอบคุณมากค่ะ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Feb 14, 2012 2:43 pm
by snasui
:D ลองปรับสูตรตามไฟล์แนบครับ

ข้อ 1-3 เป็นส่วนหนึ่งของเงื่อนไขในการค้นหาครับ
  1. เซลล์ I1 คีย์
    =IF(B1="","B1","Database!B2:B"&MATCH(CHAR(255),Database!B:B))
    Enter
  2. เซลล์ I2 คีย์
    =IF(B2="","B2","Database!E2:E"&MATCH(CHAR(255),Database!E:E))
    Enter
  3. เซลล์ I3 คีย์
    =IF(B3="","B3","Database!F2:F"&MATCH(CHAR(255),Database!F:F))
    Enter
  4. เซลล์ A5 คีย์
    =IF(ROWS(A$5:A5)>$I$4,"",SMALL(IF(Database!$A$2:$A$10>=$D$2,IF(Database!$A$2:$A$10<=$D$3,IF($B$1&$B$2&$B$3=INDIRECT($I$1)&INDIRECT($I$2)&INDIRECT($I$3),IF(Database!$J$2:$J$10="",IF(Database!$D$2:$D$10=1,ROW(Database!$A$2:$A$10)-ROW(Database!$A$2)+1))))),ROWS(A$5:A5)))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  5. เซลล์อื่น ๆ เป็นสูตรเดิมครับ

Re: ขอความช่วยเหลือเรื่องสูตรดึงข้อมูลตามเงื่อนไขค่ะ

Posted: Tue Feb 14, 2012 9:03 pm
by suka
อาจารย์คะ ขอรบกวนอาจารย์ช่วยดูว่าใช้สูตรผิดที่จุดใดค่ะ
เงื่อนไขเดิมหากที่เซลล์ C1 ชีท Form ได้มีการเลือกกลุ่มเอกสารก็ให้ดึงข้อมูลตามประเภทเอกสารที่เลือก
หากที่เซลล์ C1 ชีท Form ว่างไม่ระบุประเภทเอกสารก็ให้ดึงข้อมูลทุกรายการทุกประเภทจากชีท Database หากคอลัมน์ J ว่างมาค่ะ


ได้ขอสูตรเพิ่มจากเดิมนี้ ที่เซลล์ C2:C3 ชีท Form หากมีการเลือกรหัสและชื่อลูกค้าก็ให้ดึงข้อมูลลูกค้าตามที่เลือก
ถ้าไม่มีการเลือกรหัสและชื่อลูกค้าโดยที่เซลล์ C2:C3 ชีท Form ว่างก็ให้ดึงข้อมูลทุกรหัสทุกร้านค้าจากชีท Database คอลัมน์ J ว่างมาค่ะ


ใส่สูตรล่าสุดที่ได้แล้วลองทำให้เซลล์ C1,C2,C3 ให้ว่าง
ผลคือไม่มีการดึงค่าใดๆมาเลย สูตรขอเพิ่มต้องการหากเซลล์ C1,C2,C3 ว่างก็ดึงข้อมูลทุกประเภทเอกสารทุกรหัสร้านค้าที่มีจากชีท Database คอลัมน์ J ว่างมาค่ะ
ขอบคุณมากๆค่ะ