Page 2 of 2

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Mon Jan 27, 2014 8:39 pm
by parakorn
parakorn wrote:ขออภัยด้วยครับไฟล์แนบลืมใส่หัวข้อของฐานข้อมูล

cell D5 H5
B3:C3 cw วันที่สมัครผิดพลาด
ผลลัพท์ 0010001487222 จุฑารัตน์
B3:C3 cw Newmember
ผลลัพท์ 0010001678222 ณิชมน

cell D5 H5
B3:C3 zr วันที่สมัครผิดพลาด
ผลลัพท์ 0020003440222 ดุษฎี
B3:C3 zr Active
ผลลัพท์ 0020000087201 พีรญา

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

ข้อมูลทุกสาขาจะต้องเรียงลงไปทางด้านล่าง ไม่ใช่เรียงไปด้านขวาครับ

ผมเรียงใน sheet "เรียงฐานข้อมูลไหม่" พอจะใช้ได้หรือปล่าวครับอาจารย์ :geek:

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Mon Jan 27, 2014 9:41 pm
by snasui
:D ที่เรียงมานั้น สาขาต่างกันยังเรียงไปด้านขวาอยู่ครับ

จะต้องนำข้อมูลด้านขวามาต่อลงไปด้านล่างครับ

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Mon Jan 27, 2014 10:06 pm
by parakorn
เรียบร้อยครับ :D

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Mon Jan 27, 2014 10:33 pm
by snasui
:D จากไฟล์ที่เรียงข้อมูลมาใหม่นี้ ที่ Sheet1 เซลล์ D5 คีย์

=INDEX(เรียงฐานข้อมูลไหม่!C$2:C$9,MATCH(1,IF($C$3=เรียงฐานข้อมูลไหม่!$A$2:$A$9,IF($B$3=เรียงฐานข้อมูลไหม่!$B$2:$B$9,1)),0))

Ctrl+Shift+Enter > Copy ไปด้านขวา

!
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้อง สูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตร แสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Tue Jan 28, 2014 11:56 am
by parakorn
อาจารย์ครับ พอผมนำไปใช้กับข้อมูลจริงๆผลที่ได้ข้อมูลมันซ้ำ เนื่องจากในส่วนข้อมูล "สาขา" มันซ้ำกัน
ซึ่งในตัวอย่างที่ให้อาจารย์ไป มันไม่ซ้ำครับ พอจะมีวิธีแก้ปัญหาไหมครับ

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Tue Jan 28, 2014 1:16 pm
by snasui
:D แนบไฟล์ตัวอย่างมาพร้อมแสดงตัวอย่างคำตอบที่ต้องการมาด้วยครับ

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Thu Jan 30, 2014 6:56 am
by parakorn
ผมนำสูตรของอาจารย์ มาใช้ตามไฟล์แนบครับ
แต่ผลลัพท์ที่ต้องการอยู่ด้านล่างครับ(ในไฟล์ที่แนบเลยครับอาจารย์) :D

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Thu Jan 30, 2014 10:03 am
by snasui
:D จากตัวอย่างที่แนบมา ควรเข้าเงื่อนไขแค่ 2 รายการเท่านั้นที่เป็นสาขา cw และสถานะ Active

ปรับสูตรเดิมที่ D5 เป็น

=IFERROR(INDEX(เรียงฐานข้อมูลไหม่!C$2:C$11,SMALL(IF($C$3=เรียงฐานข้อมูลไหม่!$A$2:$A$11,IF($B$3=เรียงฐานข้อมูลไหม่!$B$2:$B$11,ROW(เรียงฐานข้อมูลไหม่!$A$2:$A$11)-ROW(เรียงฐานข้อมูลไหม่!$A$2)+1)),ROWS(D$5:D5))),"")

Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Thu Jan 30, 2014 12:03 pm
by parakorn
ขอบคุณอาจารย์มากมายเลยครับ ถ้าเข้าเงื่อนไข 3 รายการ สูตรจะเอาอยู่ไหมครับอาจารย์ หรือผมควรใช้ macro เข้าช่วยครับ ^^"

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Thu Jan 30, 2014 12:17 pm
by snasui
:D ฟังก์ชั่นต่าง ๆ สามารถซ้อนกันได้ 64 ชั้น สามารถมี Parameter ได้ 255 ตัว สูตรหนึ่ง ๆ สามารถยาวได้ 8,912 อักขระ

ถ้าไม่เกินข้อจำกัดนี้สามารถใช้ได้ครับ

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Thu Jan 30, 2014 6:42 pm
by parakorn
ขอรบกวนต่อหน่อยนะครับ :flw: เผอิญต้องการหาความถี่ของสมาชิกที่เข้ามาซื้อในแต่ละเดือน
ซึ่งรายงานที่ดึงจากระบบจะแตกต่างจากรายงานที่แล้วตรงที่เป็นรายงานต่อวัน หากลูกค้าเข้ามาซื้อซ้ำภายในเดือน
ชื่อสมาชิกจะปรากฏซ้ำกันแต่วันที่ๆ เข้ามาซื้อจะแตกต่างกัน หากผมต้องมีเงื่อนไขให้เลือก คือ สาขา(เหมือนเดิม) และเดือน
แต่ต้องการให้แสดงผล เป็นความถี่(เช่นหากสมาชิกซ้ำกัน2ครั้งจะขึ้นชื่อเดียวแต่แสดงผลลัพท์ในช่องความถี่เป็น2) และยอดซื้อ
จะเป็นยอดซื้อรวม ต้องใช้สูตรอะไรเหรอครับ :cry: :cry: :cry:

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Thu Jan 30, 2014 6:50 pm
by snasui
:D เงื่อนไขที่เพิ่มเข้ามาต้องการปีเข้ามาร่วมด้วยหรือไม่ หรือเฉพาะเดือนอย่างเดียวครับ

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Thu Jan 30, 2014 8:20 pm
by parakorn
เฉพาะเดือน ครับผม ^^

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Thu Jan 30, 2014 8:59 pm
by snasui
:D ลองตามนี้ครับ
  1. ทีชีท รายงานสรุปยอดขายรายวันตามสมาชิก แก้เซลล์ E21, E32 ให้เป็นวันที่ที่มีอยู่จริง เดือนที่ลงท้ายด้วยยนไม่ควรมีวันที่ 31
  2. ที่ชีท ความถี่ เซลล์ D6 ให้คีย์เดือนเป็นตัวเลข เช่น 1, 2, 10 ฯลฯ ไม่คีย์เป็น วัน เดือน ปี
  3. ที่ชีท ความถี่เซลล์ E9 คีย์สูตร
    =IFERROR(INDEX(รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5:$A$88,SMALL(IF(FREQUENCY(IF($D$4=รายงานสรุปยอดขายรายวันตามสมาชิก!$B$5:$B$88,IF(MONTH(รายงานสรุปยอดขายรายวันตามสมาชิก!$E$5:$E$88)=$D$6,MATCH(รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5:$A$88,รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5:$A$88,0))),ROW(รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5:$A$88)-ROW(รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5)+1),ROW(รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5:$A$88)-ROW(รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5)+1),ROWS(E$9:E9))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  4. ที่ชีท ความถี่เซลล์ F9 คีย์สูตร
    =IFERROR(VLOOKUP(E9,รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5:$C$88,3,0),"")
    Enter > Copy ลงด้านล่าง
  5. ที่ชีท ความถี่ เซลล์ F9 คีย์สูตร
    =IFERROR(SUMPRODUCT(--($D$4=รายงานสรุปยอดขายรายวันตามสมาชิก!$B$5:$B$88),--($D$6=MONTH(รายงานสรุปยอดขายรายวันตามสมาชิก!$E$5:$E$88)),--($E9=รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5:$A$88)),"")
    Enter > Copy ลงด้านล่าง
  6. ที่ชีท ความถี่ เซลล์ G9 คีย์สูตร
    =IFERROR(SUMPRODUCT(--($D$4=รายงานสรุปยอดขายรายวันตามสมาชิก!$B$5:$B$88),--($D$6=MONTH(รายงานสรุปยอดขายรายวันตามสมาชิก!$E$5:$E$88)),--($E9=รายงานสรุปยอดขายรายวันตามสมาชิก!$A$5:$A$88),รายงานสรุปยอดขายรายวันตามสมาชิก!$G$5:$G$88),"")
    Enter > Copy ลงด้านล่าง

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Fri Jan 31, 2014 2:24 pm
by parakorn
สวยงามครับอาจารย์ :D

ขอบพระคุณครับผม

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Fri Jan 31, 2014 11:24 pm
by ysamroeng
จากไฟล์ตัวอย่างแรก ข้อมูลในชีท "รายการสินค้า" ผมเอาข้อมูลมาวางต่อกันแบบฐานข้อมูล (เรียงข้อมูลตามประเภทสินค้า) ส่วนการดึงรายชื่อสินค้าแต่ละประเภทตามเงื่อนไขที่เลือก เพื่อให้มาแสดงในชีท "โปร1.57" นั้น ผมใช้ OFFSET ดังตัวอย่างในไฟล์แนบ

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

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Wed Feb 05, 2014 6:58 pm
by parakorn
ysamroeng wrote:จากไฟล์ตัวอย่างแรก ข้อมูลในชีท "รายการสินค้า" ผมเอาข้อมูลมาวางต่อกันแบบฐานข้อมูล (เรียงข้อมูลตามประเภทสินค้า) ส่วนการดึงรายชื่อสินค้าแต่ละประเภทตามเงื่อนไขที่เลือก เพื่อให้มาแสดงในชีท "โปร1.57" นั้น ผมใช้ OFFSET ดังตัวอย่างในไฟล์แนบ

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

นั่งศึกษาของท่านมาพักหนึ่งละครับ งง ครับ :lol: