ฉันมีแผ่นงาน Excel ที่มีค่าข้อความเช่นใน A1: "นี่คือข้อความ" ฉันต้องการค้นหาตำแหน่งของอักขระช่องว่างสุดท้าย มีสูตร excel ที่จะให้ผลลัพธ์ที่ฉันต้องการหรือไม่ ฉันได้ลองค้นหาและค้นหา แต่สิ่งเหล่านี้เริ่มจากซ้ายสิ่งที่ฉันต้องการคือเริ่มจากขวา
ฉันมีแผ่นงาน Excel ที่มีค่าข้อความเช่นใน A1: "นี่คือข้อความ" ฉันต้องการค้นหาตำแหน่งของอักขระช่องว่างสุดท้าย มีสูตร excel ที่จะให้ผลลัพธ์ที่ฉันต้องการหรือไม่ ฉันได้ลองค้นหาและค้นหา แต่สิ่งเหล่านี้เริ่มจากซ้ายสิ่งที่ฉันต้องการคือเริ่มจากขวา
คำตอบ:
ถ้าตามค่าว่างคุณหมายถึง "space" และโดย XLS คุณหมายถึง Excel คุณสามารถใช้สูตรนี้ได้ (สมมติว่าการทดสอบที่คุณต้องการหาพื้นที่สุดท้ายอยู่ในนั้นA1
):
=FIND("☃",SUBSTITUTE(A1," ","☃",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))
คุณสามารถแบ่งออกเป็น 3 ส่วน:
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
ช่วยให้คุณมีจำนวนของช่องว่างที่ขอเรียกว่าx
,SUBSTITUTE(A1," ","☃",[x])
จะแทนที่x
พื้นที่ว่าง (ดังนั้นอันสุดท้าย) โดยมนุษย์หิมะFIND("☃",[...])
จะให้ตำแหน่งของมนุษย์หิมะ ซึ่งเป็นตำแหน่งของช่องว่างสุดท้ายอีกวิธีหนึ่งคืออนุญาตให้ใช้อักขระใดก็ได้ใน A1 (แม้แต่ตุ๊กตาหิมะ!)
=LOOKUP(2^15,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))))
FIND
มีอาร์กิวเมนต์ที่สามที่กำหนดตำแหน่งเริ่มต้นของการค้นหาถ้าคุณใช้อาร์เรย์ของค่าจำนวนเต็ม 1 ถึง n (โดยที่ n คือความยาวของ A1) กับพารามิเตอร์นั้นคุณจะได้รับอาร์เรย์กลับมาพร้อมกับตัวเลขสุดท้ายเป็นตำแหน่งของ พื้นที่สุดท้าย
LOOKUP
จากนั้นแยกตัวเลขนั้นโดยค้นหาค่าที่มากกว่าค่าใด ๆ ที่อาจพบได้ในอาร์เรย์นั้นซึ่งในกรณีนี้จะพบหมายเลขสุดท้าย
ในExcel 2010
หรือหลังจากนั้นคุณสามารถใช้AGGREGATE
ฟังก์ชั่นเช่นนี้ได้
=AGGREGATE(14,6,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))),1)
FIND
ส่งคืนอาร์เรย์เดียวกันกับก่อนและโดยใช้ 14 เป็นอาร์กิวเมนต์ที่AGGREGATE
1 และ 1 เป็นอาร์เรย์สุดท้ายที่คุณได้รับค่ามากที่สุดในอาร์เรย์ในขณะที่ละเว้นข้อผิดพลาด [6]
"1:"&LEN(A1)
ประเมินเป็น "1:12" - นั่นคือสตริงที่ ROW ไม่สามารถดำเนินการได้ แต่ INDIRECT จะแปลงสตริงเป็นการอ้างอิงที่ถูกต้องซึ่ง ROW สามารถจัดการได้ ROW (1:12) จะให้คุณ {1 ; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12}
barry larry houdini
แล้ว FIND จะส่งคืนอาร์เรย์นี้{6;6;6;6;6;6;12;12;12;12;12;12;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
และการค้นหาและ / หรือ AGGREGATE จะใช้ค่าตัวเลขสุดท้าย / ใหญ่ที่สุดจากนั้นเช่น 12