ข้อผิดพลาด #VALUE ที่เอาชนะ Excel พร้อมฟังก์ชัน FIND


11

ในเซลล์ A1 ฉันป้อน "Apple" ใน B2 =FIND("Apple",A:A)ผมใส่สูตร อย่างไรก็ตามฉันได้รับ#VALUEข้อผิดพลาด ใครสามารถอธิบายสิ่งนี้และฉันจะเอาชนะมันได้อย่างไร


มีลักษณะที่ข้อมูลการค้นหาในตาราง Excel
rickhg12hs

1
โปรดอธิบายสิ่งที่คุณพยายามทำให้สำเร็จเพื่อให้เราสามารถช่วยเหลือคุณได้ FINDใช้เพื่อค้นหาสตริงข้อความภายในชุดข้อความที่กำหนดจากนั้นส่งคืนตำแหน่งของข้อความภายในสตริงข้อความ คุณอาจใช้ฟังก์ชันที่ไม่ถูกต้องขึ้นอยู่กับสิ่งที่คุณพยายามทำ
CharlieRB

โดยทั่วไปฉันพยายามค้นหาสตริงข้อความภายในคอลัมน์ ตำแหน่งของข้อความภายในคอลัมน์ไม่คงที่ ฉันควรจะใช้ฟังก์ชั่นอื่นและฉันจะไปไหนผิดด้วยFIND?
Gh0sT

ฟังก์ชั่น FIND ทำงานถ้าฉันต้องป้อนสูตรในเซลล์ B1 ... แปลกไป!
Gh0sT

1
โดยปกติแล้วคุณใช้FINDกับเซลล์เดียว - ถ้าคุณใช้=FIND("Apple",A:A)ในB2excel จริง ๆ แล้วคืนค่า "array" ของค่า .... แต่เซลล์ที่คุณเห็นในเซลล์จะเป็นผลลัพธ์จากคอลัมน์ A เซลล์ในแถวเดียวกันดังนั้นถ้า A2 ไม่มี "Apple" คุณจะได้รับ #VALUE !, แต่ใน B1 คุณจะได้รับตัวเลข - ยังดีที่สุดที่จะใช้เซลล์เดียว .....
barry houdini

คำตอบ:


4

หากคุณต้องการหาเซลล์แรก (แถว) ในคอลัมน์Aที่มีคำว่า "apple" อาจเป็นส่วนหนึ่งของคำที่ใหญ่กว่า (เช่น "crabapple" หรือ "applesauce") หรือประโยคให้ใช้

=MATCH("*apple*", A:A, 0)

และเนื่องจากคำตอบนี้เป็นส่วนที่ฉันควรใช้แทน ... ฉันกำลังทำเครื่องหมายสิ่งนี้เป็นคำตอบ ... ขอบคุณ!
Gh0sT

21

ค้นหาการค้นหาในเซลล์ไม่ใช่ช่วงของเซลล์ องค์ประกอบไวยากรณ์ภายใน _text กำลังดูสตริงเฉพาะ แต่ช่วงของเซลล์ไม่ใช่สตริง คุณอาจสามารถทำสิ่งนี้ได้ด้วยอาเรย์ แต่วิธีที่ง่ายที่สุดคือสร้างคอลัมน์ตัวค้นหา สร้างคอลัมน์ถัดจากคอลัมน์ที่คุณต้องการค้นหาและเพิ่มสูตรในแต่ละเซลล์ที่อยู่ติดกันดังนั้นใน B2 คำสั่ง within_text จะเป็น A2

=FIND("Apple",A1)


ฉันรู้สึกว่าคุณกำลังพยายามหาจำนวนอินสแตนซ์ของคำว่า Apple หากสิ่งนี้ถูกต้องคุณสามารถใช้สูตรนี้แทน:

=COUNTIF(A:A,"Apple")

แต่นี่จะให้คุณนับจำนวนอินสแตนซ์ทั้งหมดของคำว่า Apple ในคอลัมน์ A โดยที่ Apple เป็นเนื้อหาทั้งหมดของเซลล์นั้น


หากคุณต้องการนับอินสแตนซ์ทั้งหมดที่เซลล์มี Apple แม้ว่ามันจะมีคำอื่น ๆ (เช่น Apple Pie) ดังนั้นคุณจะต้องกลับไปที่คำสั่ง FIND ของคุณในคอลัมน์เพิ่มเติมและใช้คำสั่ง IF บางทีอาจเป็นสิ่งที่ต้องการ นี้:

=IF(ISERROR(FIND("Apple",$A2)),0,1)

นี่จะคืนค่า 0 หากคำสั่ง FIND ส่งผลให้เกิดข้อผิดพลาดและมิฉะนั้นจะคืนค่า 1 จากนั้นคุณสามารถรวมคอลัมน์นั้นเพื่อรับจำนวนเซลล์ด้วยคำว่า Apple ที่อยู่ภายใน


ขอบคุณสำหรับคำอธิบายของคุณ ... นี่เป็นคำตอบของส่วนที่ฉันไปผิดด้วย FIND
Gh0sT

0

การแยกค่าในเซลล์โดยใช้ฟังก์ชั่นค้นหาและเอาชนะ#VALUE!ผลลัพธ์

รับค่าก่อนการค้นหา "&"

=IF(IFERROR(FIND("&",B:B),0)>0,MID(B:B,1,FIND("&",B:B)-1),TRIM(B:B))

เก็บค่าหลังจากค้นหา "&"

=IF(IFERROR(FIND("&",B:B),0)>0,MID(B:B,FIND("&",B:B)+1,99),"")

คำอธิบาย

  1. ทดสอบหาข้อผิดพลาดและแทนที่ด้วย 0
  2. ทดสอบการใช้งานนอกถ้า
  3. แก้ไขหากผลลัพธ์

ตัวอย่าง: 1

=IF(IFERROR(FIND("&",B:B),0)>0,MID(B:B,FIND("&",B:B)+1,99),"")
  • เซลล์มี Mary & David
  • ค่ากลายเป็น 6 สำหรับการค้นหา
  • เริ่มต้นที่ตำแหน่งไปทางขวารับค่า
  • ผลลัพธ์คือ "David"

ตัวอย่าง: 2

  • เซลล์มีแมรี่
  • ค่ากลายเป็น 0
  • ผลลัพธ์เป็นโมฆะ

ตัวอย่าง: 3

รับค่าก่อน "&"

=IF(IFERROR(FIND("&",B:B),0)>0,MID(B:B,1,FIND("&",B:B)-1),TRIM(B:B))
  • เซลล์มี Mary & David
  • ผลลัพธ์คือแมรี่

1
คุณสามารถเพิ่มบริบทในคำตอบของคุณได้ไหม? มันไม่ชัดเจนว่ามันแก้คำถามเดิมอย่างไร
Burgi

@Burgi - ในทางกลับกันมันชัดเจนมาก พอลเอาชนะFind()พฤติกรรมที่น่าหงุดหงิดของฟังก์ชันในการส่งคืนข้อผิดพลาดหากไม่มีข้อความค้นหาในสตริงการค้นหา นี่เป็นคำตอบที่มีค่า - คุณควรโหวตมันอย่างที่ฉันมีในตอนนี้แทนที่จะลงคะแนน (นอกจากนี้ยังตอบคำถามเดิมของ OP แม้ว่าจะมีวิธีที่แตกต่างกัน)
InteXX

@InteXX หากคุณสังเกตเห็นความคิดเห็นในเดือนกุมภาพันธ์ 2559 และมีการแก้ไขหลังจากนั้นไม่นาน หากคุณคิดว่าความคิดเห็นของฉันไม่จำเป็นคุณควรตั้งค่าสถานะ
Burgi

@Burgi - นั่นเป็นการแก้ไขที่ดีทีเดียว และให้อภัยฉัน ... ฉันพูดออกมาโดยระบุว่าคุณ "ควร" ทำสิ่งใดสิ่งหนึ่ง ฉันยังสันนิษฐานว่าคุณเป็นผู้ลงคะแนนเสียงซึ่งไม่เหมาะสมเช่นกัน หากคุณจะสังเกตเห็นคำแถลงในโปรไฟล์ของฉันคุณจะเห็นว่า downvoting และการตั้งค่าสถานะเป็นสิ่งที่ฉันเลือกที่จะไม่เข้าร่วม แต่ขอขอบคุณสำหรับข้อเสนอที่มีน้ำใจ
InteXX
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.