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
:D ช่วยแก้ไขข้อความแชทให้เป็นคำปกติด้วยครับ อ่านกฎต่าง ๆ ด้านบนด้วยครับ :roll:

Re: แนะนำ สูตร หน่อยคับ

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

ผมต้องการนำ ชื่อ จาก 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
:D ลองตามนี้ครับ

ที่ 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
:D เข้าใจถูกต้องแล้วครับ :P

Re: แนะนำ สูตร หน่อยครับ

Posted: Mon Sep 17, 2012 10:05 am
by babies
:o ขอบคุณมากครับ :shock:

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
:D ค่าที่ได้ควรเป็น #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 ได้เลยครับ :lol:

Re: แนะนำ สูตร หน่อยครับ

Posted: Mon Sep 17, 2012 5:14 pm
by babies
snasui wrote::D ค่าที่ได้ควรเป็น #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 ได้เลยครับ :lol:

แล้วถ้าผมต้องที่จะแสดงค่าใน 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
:D ไม่พบไฟล์แนบ ช่วยแนบมาใหม่ครับ

Re: แนะนำ สูตร หน่อยครับ

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

Re: แนะนำ สูตร หน่อยครับ

Posted: Mon Sep 17, 2012 6:10 pm
by snasui
:D จากไฟล์ที่แนบมา ไม่พบสูตรใด ๆ ไม่ทราบว่าสูตรอยู่ที่ชีทไหน เซลล์ไหน คำตอบที่ถูกต้องเป็นอย่างไร ช่วยอธิบายเพิ่มเติมด้วย เพื่อจะได้ช่วยปรับให้ได้ครับ

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