:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

การระบุ ต.น.โยงค่าข้ามซีทแบบ ต.น.เปลี่ยนตามเลขRow

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
thana1000
Member
Member
Posts: 2
Joined: Sun Feb 28, 2016 3:33 pm
Excel Ver: 2019

การระบุ ต.น.โยงค่าข้ามซีทแบบ ต.น.เปลี่ยนตามเลขRow

#1

Post by thana1000 »

1. ช่องเหลือง ได้ตามต้องการ =IF(ISNUMBER(Data!$F11),INDEX(Data!$D:$D,MATCH(B2,Data!$B:$B,0)),INDEX(Data!$F:$F,MATCH(B2,Data!$B:$B,0)))
2. ช่องฟ้า ทำเพื่อจะหาเลขRowไว้อ้างอิง(เปลี่ยนตามเลขใบแจ้ง) =INDEX(Data!$C:$C,MATCH(B2,Data!$B:$B,0))+ROW(Data!$C$10)
3. แต่เมื่อนำ สูตรช่องฟ้า ไปแทน เลขRow ในสูตรของช่องเหลืองเดิม (ตอนนี้เป็นช่องแดง)
=IF(ISNUMBER(Data!F(INDEX(Data!$C:$C,MATCH(B2,Data!$B:$B,0))+ROW(Data!$C$10))),INDEX(Data!$D:$D,MATCH(B2,Data!$B:$B,0)),INDEX(Data!$F:$F,MATCH(B2,Data!$B:$B,0)))
ผลไม่ตรงกับช่องเหลือง ส่วนช่องส้มไม่แน่ใจว่าถูกหรือไม่ รบกวนอาจารย์ช่วยปรับสูตรช่องแดงกับช่องส้มหน่อยนะคะ ขอบพระคุณค่ะ
หมายเหตุ พ.ท.ทำงานจริงจะไม่มีช่องฟ้าค่ะ (จะแทนค่าลงไปในสูตรช่องแดงเลย) แต่ตอนนี้ทำมาเพื่ออธิบายปัญหาให้อาจารย์นะคะ

[img][https://drive.google.com/file/d/1YcoRr- ... drive_link]
You do not have the required permissions to view the files attached to this post.
User avatar
norkaz
Gold
Gold
Posts: 1758
Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365

Re: การระบุ ต.น.โยงค่าข้ามซีทแบบ ต.น.เปลี่ยนตามเลขRow

#2

Post by norkaz »

thana1000 wrote: Tue Oct 31, 2023 11:53 am 1. ช่องเหลือง ได้ตามต้องการ =IF(ISNUMBER(Data!$F11),INDEX(Data!$D:$D,MATCH(B2,Data!$B:$B,0)),INDEX(Data!$F:$F,MATCH(B2,Data!$B:$B,0)))
2. ช่องฟ้า ทำเพื่อจะหาเลขRowไว้อ้างอิง(เปลี่ยนตามเลขใบแจ้ง) =INDEX(Data!$C:$C,MATCH(B2,Data!$B:$B,0))+ROW(Data!$C$10)
3. แต่เมื่อนำ สูตรช่องฟ้า ไปแทน เลขRow ในสูตรของช่องเหลืองเดิม (ตอนนี้เป็นช่องแดง)
=IF(ISNUMBER(Data!F(INDEX(Data!$C:$C,MATCH(B2,Data!$B:$B,0))+ROW(Data!$C$10))),INDEX(Data!$D:$D,MATCH(B2,Data!$B:$B,0)),INDEX(Data!$F:$F,MATCH(B2,Data!$B:$B,0)))
ผลไม่ตรงกับช่องเหลือง ส่วนช่องส้มไม่แน่ใจว่าถูกหรือไม่ รบกวนอาจารย์ช่วยปรับสูตรช่องแดงกับช่องส้มหน่อยนะคะ ขอบพระคุณค่ะ
หมายเหตุ พ.ท.ทำงานจริงจะไม่มีช่องฟ้าค่ะ (จะแทนค่าลงไปในสูตรช่องแดงเลย) แต่ตอนนี้ทำมาเพื่ออธิบายปัญหาให้อาจารย์นะคะ

[img][https://drive.google.com/file/d/1YcoRr- ... drive_link]
ไม่ค่อยเข้าใจที่สอบถามมา


รบกวน ท่านเจ้าของคำถาม ช่วยแจ้งว่า คำตอบที่ต้องการ ในช่องสีแดง และส้ม ควรเป็นเท่าใดครับ??

**สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***

แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ
thana1000
Member
Member
Posts: 2
Joined: Sun Feb 28, 2016 3:33 pm
Excel Ver: 2019

Re: การระบุ ต.น.โยงค่าข้ามซีทแบบ ต.น.เปลี่ยนตามเลขRow

#3

Post by thana1000 »

ผลที่ต้องการ :
เดือน1 =IF(ISNUMBER(Data!$F11),INDEX(Data!$D:$D,MATCH(B2,Data!$B:$B,0)),INDEX(Data!$F:$F,MATCH(B2,Data!$B:$B,0)))
เดือน2 =IF(ISNUMBER(Data!$G11),INDEX(Data!$D:$D,MATCH(B2,Data!$B:$B,0)),INDEX(Data!$G:$G,MATCH(B2,Data!$B:$B,0)))

ถ้าค่า F(หรือG) (ในSheet Data) เป็นตัวเลข , ให้ดึงค่า D (ในSheet Data) มาแสดงที่ช่องเหลือง/แดง/ส้ม , แต่ถ้า F(หรือG) ไม่ใช่ตัวเลข ให้ช่องเหลือง/แดง/ส้ม* แสดงค่า F(หรือG) นั้น

*ช่องเหลือง/แดง/ส้ม คือช่องเดียวกัน (พ.ท.งานจริงจะมีแต่ช่องเหลือง แต่ที่ทำช่องแดง/ส้ม เพื่ออธิบายว่า ได้ผลลัพธ์ต่างกัน)
ช่องเหลือง ได้จากการใช้ $F11 (ระบุแถวที่11ตรงๆ ซึ่งได้ผลลัพธ์ตามต้องการ แต่การใช้งานจริง ต้องการให้11 (Row) เปลี่ยนไปตามเลขใบแจ้งของแต่ละใบ เนื่องจากกำหนดให้ว่าถ้าช่อง "รวม" เป็นศูนย์ ไม่ต้องมีใบแจ้ง เลขใบแจ้งจึงไม่จำเป็นต้องตรงกับลำดับที่)

ส่วนช่องแดง/ส้ม ได้จากการใช้สูตรแทนค่าเลข11 เปลี่ยนไปตามเลขใบแจ้ง ตามที่ใช้งานจริง แต่ผลลัพธ์ไม่ได้ตามต้องการ (เหมือนเห็นค่าของ F เป็นไม่ใช่ตัวเลขตลอดเวลา จึงทำให้ช่องแดง/ส้มแสดงเป็นค่า F ตลอด (ไม่แสดงค่า D เลย)

สูตรของช่องเหลือง/แดง/ส้ม ต่างกันแค่ตรงเลข 11 นอกนั้นเหมือนกันหมด

1.เลขใบแจ้ง1 ได้Rowที่11
1.1 เดือน1 มี F11=300 ซึ่ง is number ดังนั้นช่องเหลือง/แดง/ส้ม จึงควรแสดงค่า D11 (คือ225)
1.2 เดือน2 มี G11=รอ ซึ่งไม่ใช่ number ดังนั้นช่องเหลือง/แดง/ส้ม จึงควรแสดงค่า G11 (คือคำว่า รอ)

2.เลขใบแจ้ง2 ได้Rowที่12
2.1 เดือน1 มี F12=รอ ซึ่งไม่ใช่ number ดังนั้นช่องเหลือง/แดง/ส้ม จึงควรแสดงค่า F12 (คือคำว่า รอ)
2.2 เดือน2 มี G12=400 ซึ่ง is number ดังนั้นช่องเหลือง/แดง/ส้ม จึงควรแสดงค่า D12 (คือ325)

3.เลขใบแจ้ง3 ได้Rowที่14
3.1 เดือน1 มี F14=500 ซึ่ง is number ดังนั้นช่องเหลือง/แดง/ส้ม จึงควรแสดงค่า D14 (คือ425)
3.2 เดือน2 มี G14=รอ ซึ่งไม่ใช่ number ดังนั้นช่องเหลือง/แดง/ส้ม จึงควรแสดงค่า G14 (คือคำว่า รอ)

4.เลขใบแจ้ง4 ได้Rowที่16
4.1 เดือน1 มี F16=รอ ซึ่งไม่ใช่ number ดังนั้นช่องเหลือง/แดง/ส้ม จึงควรแสดงค่า F16 (คือคำว่า รอ)
4.2 เดือน2 มี G16=700 ซึ่ง is number ดังนั้นช่องเหลือง/แดง/ส้ม จึงควรแสดงค่า D16 (คือ625)

ขอบคุณค่ะ
User avatar
norkaz
Gold
Gold
Posts: 1758
Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365

Re: การระบุ ต.น.โยงค่าข้ามซีทแบบ ต.น.เปลี่ยนตามเลขRow

#4

Post by norkaz »

...

เพื่อความเข้าใจที่ตรงกัน รบกวนท่านเจ้าของคำถาม ช่วย แนบไฟล์ Excel
คีย์คำตอบที่ถูกต้อง ลงไป ในช่องสีเหลือง หรือช่องต่างๆ ที่ต้องการผลลัพธ์ (คีย์มือ) ไม่ต้อง ใส่สูตรมา

**สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***

แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ
User avatar
norkaz
Gold
Gold
Posts: 1758
Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365

Re: การระบุ ต.น.โยงค่าข้ามซีทแบบ ต.น.เปลี่ยนตามเลขRow

#5

Post by norkaz »

...

หรือ ลองปรับไปแบบนี้ ติดอะไร ถาม-ตอบกันใหม่ครับ

Sheet Data
I11
=IF(B11="","",IF(ISNUMBER(F11),D11,"รอ"))
Copy ลงไป


J11
=IF(B11="","",IF(ISNUMBER(G11),D11,"รอ"))
Copy ลงไป


Sheet Result
C4
=VLOOKUP(B2,Data!$B$11:$J$16,8,0)
Copy ไปเซลล์ ที่เกี่ยวข้อง

C5
=VLOOKUP(B2,Data!$B$11:$J$16,9,0)
Copy ไปเซลล์ ที่เกี่ยวข้อง

**สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***

แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ
You do not have the required permissions to view the files attached to this post.
User avatar
norkaz
Gold
Gold
Posts: 1758
Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365

Re: การระบุ ต.น.โยงค่าข้ามซีทแบบ ต.น.เปลี่ยนตามเลขRow

#6

Post by norkaz »

...

อีกแบบ หากยึดตาม ตัวเลข ที่ ท่านผู้สอบถามอธิบายมา

Sheet Result
C4
=VLOOKUP(B2,Data!$B$11:$G$16,IF(ISNUMBER(INDEX(Data!$F$11:$F$16,MATCH(B2,Data!$B$11:$B$16,0),0)),3,5),0)
Copy ไป เดือน 1 ของเลขใบแจ้งอื่นๆ

C5
=VLOOKUP(B2,Data!$B$11:$G$16,IF(ISNUMBER(INDEX(Data!$G$11:$G$16,MATCH(B2,Data!$B$11:$B$16,0),0)),3,6),0)
Copy ไป เดือน 2 ของเลขใบแจ้งอื่นๆ

**สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***

แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ

...
You do not have the required permissions to view the files attached to this post.
Post Reply