いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)FIND関数で複数の検索文字列を指定する

 ExcelのFIND関数で、検索文字列(検索条件)を複数指定して最初に出現するものの位置を取得する方法についてです。
 例として文字列に含まれる「-」と「/」のうち、先に出現するものの位置を取得することができます。

  • FIND関数の第2引数(検索文字列)に配列を指定することで複数の検索文字列を検索した結果を得ることができ、さらにMIN関数と組み合わせることで最初の出現位置を取得できます。

手順

f:id:accs2014:20200524102558p:plain:right:w500

 B3:B6セルに文字列が入力されています。これはところどころハイフン(-)とスラッシュ(/)で区切られています。
 そこで、どちらか最初に出現するものの位置を取得するものとします。

 まずはB3セルに次のように記します。

=MIN(IFERROR(FIND({"-","/"},B3),""))

 FIND関数の第1引数を「{"-","/"}」とすることでハイフンとスラッシュの両方を検索文字列に指定しています。これによりそれぞれの文字を検索した結果(ここでは3と7)が返されますので、あとはMIN関数で少ない方(最初に出現する方の位置)を取得しています。なお、含まれない文字がある場合はエラーが返されますのでIFERROR関数で空文字に変換しています。
 なお、検索しようとする文字列が別のセル(例えばE3とE4)に記録されている場合はこの第1引数を「$E$3:$E$4」とします。
 

f:id:accs2014:20200524102602p:plain:right:w400

 確定した結果です。スラッシュより先に出現しているハイフンの位置「3」が得られています。

f:id:accs2014:20200524103351p:plain:right:w400

 さらに式を下方にフィルコピーした結果です。
 いずれの行でも、どちらか最初に出現しているものの位置が得られています。

 ただし、検索対象の文字列が1つも含まれない場合はエラーではなく0になりますのでご注意ください。