Page 1 of 2
แนะนำ สูตร หน่อยครับ
Posted: Sun Sep 16, 2012 8:49 pm
by babies
ผมต้องการนำ ชื่อ จาก sheet 2 col D มาแสดงในช่อง D sheet1 โดยมีเงื่อนไขว่า
col A sheet1 = col A sheet2 AND
col B sheet1 = col B sheet2 AND
col C sheet1 = col C sheet2
อธิบายเพิ่มคับ :
col A1 sheet1 = จะค้นหา col A ใดๆใน(ทั้งคอลัมน์) sheet2 AND
col B1 sheet1 = จะค้นหา col B ใดๆใน(ทั้งคอลัมน์) sheet2 AND
col C1 sheet1 = จะค้นหา col C ใดๆใน(ทั้งคอลัมน์) sheet2
ถ้าเช็คแล้วเหมือนกันทั้งสามช่อง ก็จะ ดึงข้อมูลจาก col D sheet2 มาแสดงใน col D sheet1
ตัวอย่างอีกนิดคับ :
col A1 sheet1 = col A99 sheet2 AND
col B1 sheet1 = col B99 sheet2 AND
col C1 sheet1 = col C99 sheet2
value : col D1 sheet1 = col D99 sheet2
......แนะนำด้วยคับ......
ขอบคุณมากครับ
Re: แนะนำ สูตร หน่อยคับ
Posted: Sun Sep 16, 2012 9:10 pm
by snasui

ช่วยแก้ไขข้อความแชทให้เป็นคำปกติด้วยครับ อ่านกฎต่าง ๆ ด้านบนด้วยครับ

Re: แนะนำ สูตร หน่อยคับ
Posted: Mon Sep 17, 2012 6:16 am
by babies
snasui wrote:
ช่วยแก้ไขข้อความแชทให้เป็นคำปกติด้วยครับ อ่านกฎต่าง ๆ ด้านบนด้วยครับ

ขอโทษครับ...แก้ไขแล้วครับ
ผมต้องการนำ ชื่อ จาก sheet 2 col D มาแสดงในช่อง D sheet1 โดยมีเงื่อนไขว่า
col A sheet1 = col A sheet2 AND
col B sheet1 = col B sheet2 AND
col C sheet1 = col C sheet2
อธิบายเพิ่มครับ :
col A1 sheet1 = จะค้นหา col A ใดๆใน(ทั้งคอลัมน์) sheet2 AND
col B1 sheet1 = จะค้นหา col B ใดๆใน(ทั้งคอลัมน์) sheet2 AND
col C1 sheet1 = จะค้นหา col C ใดๆใน(ทั้งคอลัมน์) sheet2
ถ้าเช็คแล้วเหมือนกันทั้งสามช่อง ก็จะ ดึงข้อมูลจาก col D sheet2 มาแสดงใน col D sheet1
ตัวอย่างอีกนิดครับ :
col A1 sheet1 = col A99 sheet2 AND
col B1 sheet1 = col B99 sheet2 AND
col C1 sheet1 = col C99 sheet2
value : col D1 sheet1 = col D99 sheet2
......แนะนำด้วยครับ......
ขอบคุณมากครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 6:58 am
by snasui

ลองตามนี้ครับ
ที่ Sheet1 เซลล์ D1 คีย์
=INDEX(Sheet2!$D$1:$D$8,MATCH(1,IF(A1=Sheet2!$A$1:$A$8,IF(B1=Sheet2!$B$1:$B$8,IF(C1=Sheet2!$C$1:$C$8,1))),0)
Ctrl+Shift+Enter > Copy ลงด้านล่าง
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น
{=YourFormulas(...)
} ปีกกานี้คีย์เข้าไปเองไม่ได้
ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 9:49 am
by babies
อ่อ...ขอบคุณมากครับ....ได้แล้วครับ
ผมขอถามต่ออีกครับ
ถ้าข้อมูลมีเยอะมากครับ จะกำหนด A1=Sheet2!$A$1:$A$8 ยังไงครับ
หรือว่าข้อมูลใน col มีอยู่ 20,000+ ก็ต้องใส่ $A$1:$A$20,000 ครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 9:55 am
by snasui

เข้าใจถูกต้องแล้วครับ

Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 10:05 am
by babies

ขอบคุณมากครับ

Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 4:23 pm
by babies
ขอถามต่อครับ
ผมลองไปทำกับข้อมูลจริงครับ แต่ผลออกมาเป็น #N/A ครับ
ผม config เลยนะครับ
=INDEX(Sheet2!$D$99,MATCH(1,IF(A1=1,IF(B1=2,IF(C1=3,1))),0))
แล้วดูจากการทำงานของ excel error นะครับ
=INDEX(Sheet2!$D$99,MATCH(1,1,0))
=INDEX(Sheet2!$D$99,#N/A)
ค่าที่ได้เท่ากับ #N/A
แต่พอตั้งค่าให้มันเป็น >>> =INDEX(Sheet2!$D$99,1) ค่าที่ได้ก้ตรงกับที่ต้องการ
เป็นเพราะอะไรครับ งง มากครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 4:31 pm
by snasui

ค่าที่ได้ควรเป็น #N/A ถูกต้องแล้วครับ เนื่องจากสูตรไม่สามารถใช้ลักษณะที่ปรับมานี้ครับ
babies wrote:ผม config เลยนะครับ
=INDEX(Sheet2!$D$99,MATCH(1,IF(A1=1,IF(B1=2,IF(C1=3,1))),0))
แล้วดูจากการทำงานของ excel error นะครับ
=INDEX(Sheet2!$D$99,MATCH(1,1,0))
=INDEX(Sheet2!$D$99,#N/A)
ค่าที่ได้เท่ากับ #N/A
แบบนี้ก็เช่นกัน
babies wrote:แต่พอตั้งค่าให้มันเป็น >>> =INDEX(Sheet2!$D$99,1) ค่าที่ได้ก้ตรงกับที่ต้องการ
เป็นเพราะอะไรครับ งง มากครับ
ถ้าต้องการค่าใน D99 ไม่จำเป็นต้องเขียนสูตรแบบนั้น คีย์ =D99 ได้เลยครับ

Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 5:14 pm
by babies
snasui wrote:
ค่าที่ได้ควรเป็น #N/A ถูกต้องแล้วครับ เนื่องจากสูตรไม่สามารถใช้ลักษณะที่ปรับมานี้ครับ
babies wrote:ผม config เลยนะครับ
=INDEX(Sheet2!$D$99,MATCH(1,IF(A1=1,IF(B1=2,IF(C1=3,1))),0))
แล้วดูจากการทำงานของ excel error นะครับ
=INDEX(Sheet2!$D$99,MATCH(1,1,0))
=INDEX(Sheet2!$D$99,#N/A)
ค่าที่ได้เท่ากับ #N/A
แบบนี้ก็เช่นกัน
babies wrote:แต่พอตั้งค่าให้มันเป็น >>> =INDEX(Sheet2!$D$99,1) ค่าที่ได้ก้ตรงกับที่ต้องการ
เป็นเพราะอะไรครับ งง มากครับ
ถ้าต้องการค่าใน D99 ไม่จำเป็นต้องเขียนสูตรแบบนั้น คีย์ =D99 ได้เลยครับ

แล้วถ้าผมต้องที่จะแสดงค่าใน col J Sheet2 ใน col J Sheet1 โดยที่
col E sheet1=col E sheet2
col G sheet1=col G sheet2
col H sheet1=col H sheet2
ผมแนบไฟล์ไว้ด้วยครับ
แนะนำด้วยครับ.....ขอบคุณครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 5:24 pm
by snasui

ไม่พบไฟล์แนบ ช่วยแนบมาใหม่ครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 6:07 pm
by babies
ไฟล์แนบแล้วนะครับ นั่งตัดไฟล์ให้เล็กลงเลยช้าหน่อยครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 6:10 pm
by snasui

จากไฟล์ที่แนบมา ไม่พบสูตรใด ๆ ไม่ทราบว่าสูตรอยู่ที่ชีทไหน เซลล์ไหน คำตอบที่ถูกต้องเป็นอย่างไร ช่วยอธิบายเพิ่มเติมด้วย เพื่อจะได้ช่วยปรับให้ได้ครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 6:21 pm
by babies
Sheet1 #N/A คือค่าที่ดึงมาครับ
แต่ สอง row สุดท้ายควรจะมีค่า ตามตัวสีแดงครับ
ขอบคุณครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 6:29 pm
by snasui

ที่ Sheet1 เซลล์ J1 ปรับสูตรเป็นตามด้านล่างครับ
=INDEX(Sheet2!$J$1:$J$6,MATCH(1,IF(E1=Sheet2!$E$1:$E$6
+0,IF(G1=Sheet2!$G$1:$G$6,IF(H1=Sheet2!$H$1:$H$6,1))),0))
Ctrl+Shift+Enter > Copy ลงด้านล่าง ที่ต้อง
บวกด้วย 0 ในสูตรตามด้านบนเนื่องจากว่าคอลัมน์ E ของ Sheet2 เป็น Text จึงจำเป็นต้อง
แปลงให้เป็น Number เสียก่อนถึงจะ Match กันเจอครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 6:50 pm
by babies
snasui wrote:
ที่ Sheet1 เซลล์ J1 ปรับสูตรเป็นตามด้านล่างครับ
=INDEX(Sheet2!$J$1:$J$6,MATCH(1,IF(E1=Sheet2!$E$1:$E$6
+0,IF(G1=Sheet2!$G$1:$G$6,IF(H1=Sheet2!$H$1:$H$6,1))),0))
Ctrl+Shift+Enter > Copy ลงด้านล่าง ที่ต้อง
บวกด้วย 0 ในสูตรตามด้านบนเนื่องจากว่าคอลัมน์ E ของ Sheet2 เป็น Text จึงจำเป็นต้อง
แปลงให้เป็น Number เสียก่อนถึงจะ Match กันเจอครับ
ขอบคุณครับ แต่ยัง งงๆ อยู่เลยครับ
คอลัมน์ E ของ Sheet2 เป็น Text
ผมเห็นมีแต่ตัวเลข อธิบายเพิ่มได้ไหมครับ
ขอบคุณครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 6:55 pm
by snasui

ค่าที่เห็นไม่ได้ยืนยันว่ามันต้องเป็นเช่นนั้น ตัวเลขไม่จำเป็นว่าจะต้องเป็น Number อยู่ที่การจัด Format ครับ
กรณีต้องการตรวจสอบว่าเป็น Number หรือไม่ สามารถใช้ฟังก์ชันเข้าไปตรวจสอบได้ เช่น
=Isnumber(E1)
หากผลลัพธ์เป็น True คือเป็น Number ถ้าเป็น False คือไม่ใช่ Number หรือ หากตรวจสอบว่าเป็น Text หรือไม่ สามารถเขียนสูตรเป็น
=Istext(E1)
หากผลลัพธ์เป็น True คือเป็น Text ถ้าเป็น False คือไม่ใช่ Text
การจะ Match กันได้
จำเป็นจะต้องเป็นข้อมูลประเภทเดียวกันครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Mon Sep 17, 2012 6:58 pm
by babies
อ๋อ
ขอบคุณมากครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Wed Sep 19, 2012 6:02 pm
by babies
รบกวนถามต่อครับ
ถ้าผมเพิ่ม col มาอีก 1 col ครับ คือ
เช็ค A & B & C เหมือนเดิมนะครับ
ส่วน col D จะเช็คบาง row ครับ คือ
เช็ค A & B & C & D
สามารถเขียนสูตรเช็คเป็นสูตรเดียวได้ไหมครับ
หรือว่าต้องเขียนสูตรแยกคนละสูตรครับ
ขอบคุณครับ
Re: แนะนำ สูตร หน่อยครับ
Posted: Wed Sep 19, 2012 6:07 pm
by snasui

สามารถเขียนเป็นสูตรเดียวได้ครับ พยายามถามพร้อมไฟล์ตัวอย่างจะได้เข้าใจตรงกันครับ