Difference between revisions of "Documentation/How Tos/Calc: SEARCH function"

From Apache OpenOffice Wiki
Jump to: navigation, search
m
m
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
__NOTOC__
+
{{DISPLAYTITLE:SEARCH function}}
 +
{{Documentation/CalcFunc TextTOC
 +
|ShowPrevNext=block
 +
|PrevPage=Documentation/How_Tos/Calc:_ROMAN_function
 +
|NextPage=Documentation/How_Tos/Calc:_SUBSTITUTE_function
 +
}}__NOTOC__
  
 
== SEARCH ==
 
== SEARCH ==
Line 16: Line 21:
 
: A failed search gives the <tt>'''#VALUE!'''</tt> error.
 
: A failed search gives the <tt>'''#VALUE!'''</tt> error.
  
: In '''Tools - Options - OpenOffice.org Calc - Calculate''' the setting for <i>Search criteria = and <>must apply to whole cells</i> has no effect.
+
: In {{menu|Tools|Options|OpenOffice Calc|Calculate}} the setting for <i>Search criteria = and <>must apply to whole cells</i> has no effect.
  
 
=== Example: ===
 
=== Example: ===
Line 28: Line 33:
 
: returns <tt>'''3'''</tt>, if regular expressions are enabled. The "." stands for any single character in a regular expression, so <tt>'''"t.n"'''</tt> matches <tt>'''"ten"'''</tt>.
 
: returns <tt>'''3'''</tt>, if regular expressions are enabled. The "." stands for any single character in a regular expression, so <tt>'''"t.n"'''</tt> matches <tt>'''"ten"'''</tt>.
  
{{Documentation/SeeAlso|
+
<tt>'''SEARCH("xyz","abcdef",1)'''</tt>
 +
: returns <tt>'''#VALUE!'''</tt>.
 +
: NOTE:  This is an error condition, which must be 'handled' if used as the argument to another function.
 +
: <tt>'''IF( SEARCH("xyz","abcdef",1) , "Substring Present", "ERR: Missing Substring" )'''</tt>
 +
:: returns <tt>'''#VALUE!'''</tt> which is not very useful, therefore we could use either <tt>'''ISERROR()'''</tt> or <tt>'''ISNUMBER()'''</tt> for example:
 +
:: <tt>'''IF( ISERROR( SEARCH("xyz","abcdef",1) ) , "ERR: Missing Substring", "Substring Present" )'''</tt>.
 +
::: returns <tt>'''"ERR: Missing Substring"'''</tt> (... allowing the IF() to function, and not propagating the error from the SEARCH() function.
 +
:: <tt>'''IF( ISNUMBER( SEARCH("xyz","abcdef",1) ) , "Substring Present", "ERR: Missing Substring" )'''</tt>.
 +
::: returns <tt>'''"ERR: Missing Substring"'''</tt> (... allowing the IF() to function, and not propagating the error from the SEARCH() function.
 +
:: NOTE:  In practice, it may be more maintainable to use ISNUMBER() to avoid negative logic, and it is more indicative of the evaluation desired:  if the substring has a position, then ISNUMBER() is TRUE, else ISNUMBER() is FALSE.
 +
 
 +
 
 +
{{SeeAlso|EN|
 
* [[Documentation/How_Tos/Calc: REPLACE function|REPLACE]]
 
* [[Documentation/How_Tos/Calc: REPLACE function|REPLACE]]
 
* [[Documentation/How_Tos/Calc: FIND function|FIND]]
 
* [[Documentation/How_Tos/Calc: FIND function|FIND]]

Latest revision as of 15:39, 2 February 2024



SEARCH

Returns the position of a string of text within another string.

Syntax:

SEARCH(findtext; texttosearch; startposition)

returns the character position of the first occurrence of findtext within texttosearch.
startposition (optional) is the position from which the search starts.
The search is not case-sensitive.
The search will use regular expressions, if they are enabled (Tools - Options - OpenOffice.org Calc - Calculate).
A failed search gives the #VALUE! error.
In Tools → Options → OpenOffice Calc → Calculate the setting for Search criteria = and <>must apply to whole cells has no effect.

Example:

SEARCH("yo"; "Yoyo")

returns 1. The search is case-insensitive.

SEARCH("cho"; "choochoo"; 2)

returns 5.

SEARCH("t.n"; "often")

returns 3, if regular expressions are enabled. The "." stands for any single character in a regular expression, so "t.n" matches "ten".

SEARCH("xyz","abcdef",1)

returns #VALUE!.
NOTE: This is an error condition, which must be 'handled' if used as the argument to another function.
IF( SEARCH("xyz","abcdef",1) , "Substring Present", "ERR: Missing Substring" )
returns #VALUE! which is not very useful, therefore we could use either ISERROR() or ISNUMBER() for example:
IF( ISERROR( SEARCH("xyz","abcdef",1) ) , "ERR: Missing Substring", "Substring Present" ).
returns "ERR: Missing Substring" (... allowing the IF() to function, and not propagating the error from the SEARCH() function.
IF( ISNUMBER( SEARCH("xyz","abcdef",1) ) , "Substring Present", "ERR: Missing Substring" ).
returns "ERR: Missing Substring" (... allowing the IF() to function, and not propagating the error from the SEARCH() function.
NOTE: In practice, it may be more maintainable to use ISNUMBER() to avoid negative logic, and it is more indicative of the evaluation desired: if the substring has a position, then ISNUMBER() is TRUE, else ISNUMBER() is FALSE.




See Also
Retrieved from "https://wiki.openoffice.org/w/index.php?title=Documentation/How_Tos/Calc:_SEARCH_function&oldid=260113"
Views
Personal tools
Navigation
Tools