Page 1 of 1

ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

Posted: Thu Feb 17, 2022 5:07 pm
by Puuji
เรียน สอบถาม เรื่อง ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

เนื่องจากดิฉันมีปัญหาเกี่ยวกับการดึงข้อมูลหลาย Sheet มาต่อกัน โจทย์คือ Sheet มีมากกว่า 1 Sheet ในตัวอย่าว 10 Sheet เป็นข้อมูลการลงทะเบียนที่ซ้ำกัน ต้องการดึงข้อมูลทุก Sheet มารวมกัน โดยหากเป็นข้อมูลที่ซ้ำกันจะดึงมาค่าเดียวเท่านั้น เขียนสูตรไว้เบื้องต้นแต่ดึงไม่ได้ค่ะ ไม่ทราบว่าผิดตรงไหนค่ะ รบกวนช่วยปรับแก้ให้หน่อยนะคะ

Re: ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

Posted: Thu Feb 17, 2022 6:16 pm
by snasui
:D ตัวอย่างสูตรครับ

ลบสูตรในคอลัมน์ B และ C เดิมออกก่อน จากนั้นที่ B4 คีย์

=UNIQUE(INDEX(TRANSPOSE(CHOOSE({1,2,3,4,5,6,7,8,9,10},'Day 1'!B$4:B$200,'Day 1-2'!B$4:B$200,'Day 2'!B$4:B$200,'Day 2-2'!B$4:B$200,'Day 3'!B$4:B$200,'Day 3-2'!B$4:B$200,'Day 4'!B$4:B$200,'Day 4-2'!B$4:B$200,'Day 5'!B$4:B$200,'Day 5-2'!B$4:B$200)),0,1))

Enter > Copy ไป C4

Re: ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

Posted: Fri Feb 18, 2022 11:31 am
by Puuji
เรียน สอบถามค่ะ
ลองเอาสูตรไปใช้แล้วค่ะ แต่ติด error #SPILL! แบบนี้ค่ะ ไม่ทราบเป็นเพราะเราเพิ่ม Sheet หลาย sheet ลงไป หรือเราทำอะไรผิดไปค่ะ

เราสามารถเพิ่ม Sheet มากกว่า 10 Sheet ได้หรือเปล่าค่ะ

ขออนุญาตสอบถามเพิ่มเติมค่ะ

Re: ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

Posted: Fri Feb 18, 2022 11:41 am
by Xcelvba
การที่ขึ้นว่า #SPILL! แสดงว่าช่วงที่แสดงข้อมูลของคุณ มีค่าอยู่บางเซลล์ จึงไม่สามารถแสดงค่าได้ครับ (วิธีแก้ ลบข้อมูลในเซลล์ด้านล่างสูตรให้หมดครับ (ให้เป็นช่องว่าง)

Re: ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

Posted: Fri Feb 18, 2022 1:37 pm
by Puuji
ขอรบกวนอีกครั้งนะคะ ยังแก้ไขไม่ได้ค่ะ ลบข้อมูลข้างล่างสูตรหมดแล้วค่ะ แต่ยังขึ้น #SPILL! นี้อยู่ค่ะ ไม่แน่ใจทำอะไรผิดไปค่ะ
รบกวนดูให้อีกครั้งนะคะ

Re: ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

Posted: Fri Feb 18, 2022 1:43 pm
by Puuji
ต้องขออภัยด้วยค่ะ ข้อมูลที่ซ้ำ ให้ดึงมาเป็นข้อมูลเดียวค่ะไม่ได้ตัดทิ้งนะคะ เช่น ข้อมูลลงทะเบียน นาย ก ลงมาทุกวันแต่ดึงเอาเฉพาะนาย ก ชื่อเดียวเท่านั้นค่ะ ไม่ตัดทิ้งทั้งหมดค่ะ

ขอโทษด้วยค่ะ อธิบายไม่ชัดเจนค่ะ

Re: ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

Posted: Fri Feb 18, 2022 6:37 pm
by snasui
:D ลองดูว่าใช่ที่ต้องการหรือไม่ครับ
  1. เซลล์ B9 คีย์
    =FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN(",",TRUE,'Day 1'!B$9:B$200,'Day 1-2'!B$9:B$200,'Day 2'!B$9:B$200,'Day 2-2'!B$9:B$200,'Day 3'!B$9:B$200,'Day 3-2'!B$9:B$200,'Day 4'!B$9:B$200,'Day 4-2'!B$9:B$200,'Day 5'!B$9:B$200,'Day 5-2'!B$9:B$200),",","</s><s>")&"</s></t>","//s[not(preceding::*=.)]")
    Enter
  2. เซลล์ B9 คีย์
    =VLOOKUP($B9&"",INDIRECT(INDEX("'"&{"Day 1","Day 1-2","Day 2","Day 2-2","Day 3","Day 3-2","Day 4","Day 4-2","Day 5","Day 5-2"}&"'!B9:Z1000",MATCH(TRUE,COUNTIFS(INDIRECT("'"&{"Day 1","Day 1-2","Day 2","Day 2-2","Day 3","Day 3-2","Day 4","Day 4-2","Day 5","Day 5-2"}&"'!B9:B1000"),$B9)>0,0))),COLUMNS($B6:C8),0)
    Enter > Copy ไปด้านขวาและลงด้านล่าง
การเพิ่มหรือลดชีตสามารถทำได้ตามปกติ ดูตัวอย่างได้ในสูตรว่าแต่ละชีตมีการระบุค่าเช่นใด การเพิ่มก็ระบุเช่นนั้น ส่วนการลดก็แค่ลบชีตที่ไม่ต้องการในสูตรทิ้งไปครับ

Re: ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

Posted: Sun Feb 20, 2022 6:17 pm
by Puuji
เรียน อาจารย์ค่ะ

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

สูตรที่ 2 ใส่สูตรลงไป ค่าออกเป็น 0 ค่ะ ไม่แน่ใจทำอะไรผิดไปค่ะ

Re: ดึงข้อมูลหลาย Sheet มาต่อกัน โดยไม่เอาข้อมูลซ้ำ

Posted: Sun Feb 20, 2022 6:34 pm
by snasui
:D ข้อ 2 ผมระบุเซลล์ผิดไป ที่ถูกต้องให้คีย์ใน C9 ใช้ 2 สูตรร่วมกัน ไม่ใช่สูตรใดสูตรเดียวครับ

เนื่องจากไฟล์ล่าสุดค่าในคอลัมน์ B ของชีตต่าง ๆ เป็น Number ปรับสูตรที่ C9 เป็นด้านล่างครับ

=VLOOKUP($B9,INDIRECT(INDEX("'"&{"Day 1","Day 1-2","Day 2","Day 2-2","Day 3","Day 3-2","Day 4","Day 4-2","Day 5","Day 5-2"}&"'!B9:Z1000",MATCH(TRUE,COUNTIFS(INDIRECT("'"&{"Day 1","Day 1-2","Day 2","Day 2-2","Day 3","Day 3-2","Day 4","Day 4-2","Day 5","Day 5-2"}&"'!B9:B1000"),$B9)>0,0))),COLUMNS($B6:C8),0)

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