Page 1 of 1

การค้นหาตำแหน่งcharacterที่อยู่ขวาสุด

Posted: Thu Nov 07, 2013 5:15 am
by Provolone
ผมมี cell นึงมีข้อความว่า

00110000

ผมต้องการหาตำแหน่งของเลข 1 แต่ต้องเป็นเลขหนึ่งที่อยู่ขวาสุด
ในที่นี้ต้องได้ค่า = 4

ยกตัวอย่างเพิ่ม

01010101 >>> 8
10001000 >>> 5
11111010 >>> 7

ขอเป็น formula นะครับ ไม่เอา VBA
ขอบคุณครับ

Re: การค้นหาตำแหน่งcharacterที่อยู่ขวาสุด

Posted: Thu Nov 07, 2013 5:32 am
by Provolone
จริงๆ ถ้าใช้ คำสั่ง find แล้วให้มันหาจากทางด้านขวามาก็จะได้ครับ แต่ excel ทำไม่ได้
อีกทางคือ ต้องกลับอักขระ จากซ้ายไปขวาก่อน (จริงๆ ก็ทำได้เพราะค่าใน cell นี้เกินจากการ concatenate มา) แล้วใช้คำสั่ง find
อยากทราบว่ามีทางอื่นอีกมั้ยครับ

Re: การค้นหาตำแหน่งcharacterที่อยู่ขวาสุด

Posted: Thu Nov 07, 2013 8:12 am
by snasui
:D ลองตามนี้ครับ

สมมุติค่าเป้าหมายอยู่ที่ A1 ที่เซลล์ใด ๆ คีย่์

=LOOKUP(2,1/(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),ROW(INDIRECT("1:"&LEN(A1))))

Enter

Re: การค้นหาตำแหน่งcharacterที่อยู่ขวาสุด

Posted: Thu Nov 07, 2013 9:46 am
by bank9597
:D แถมอีกสูตรครับ

=FIND(2,SUBSTITUTE(A1,1,2,LEN(A1)-LEN(SUBSTITUTE(A1,1,""))))

Enter

Re: การค้นหาตำแหน่งcharacterที่อยู่ขวาสุด

Posted: Fri Nov 08, 2013 2:05 am
by Provolone
ขอบคุณครับ งั้นถามเพิ่มครับ
ปัญหาเดิม แต่ว่าข้อมูล 0,1 กระจายอยู่คนละ cell ให้คืนค่าตำแหน่ง cell ที่มี 1 อยู่ขวาสุด
เช่นตัวอย่างล่างคำตอบอยู่ col F
มีวิธีทำโดยไม่ต้อง concatenate A B C D E เข้าด้วยกันแล้วใช้สูตรข้างบนมั้ยครับ

A B C D E F
0 1 1 0 0 3
1 0 0 0 1 5
1 1 0 1 0 4

Re: การค้นหาตำแหน่งcharacterที่อยู่ขวาสุด

Posted: Fri Nov 08, 2013 6:53 am
by snasui
:D สามารถปรับสูตรเป็นตามด้านล่างครับ

=Lookup(2,1/(A1:F1=1),Column($A1:$F1)-Column($A1)+1)

Enter > Copy ลงด้านล่าง

Note: Column($A1:$F1)-Column($A1)+1 เป็นสูตรที่ให้ผลลัพธ์เป็นค่าลำดับโดยให้มีความยืดหยุ่น หากมีการแทกคอลัมน์ด้านซ้ายของสูตร ค่าลำดับนี้ก็จะยังถูกต้องอยู่เสมอ