問題
Excelを使用して、文字列が左から何番目にあるのかを探す関数(複数条件)を作成してください。以下が入力例です。
<検索文字列>
-
/
<入力>
1-123
123-1234
123/1234
<出力>
2 4 4
ヒント
この変換を行うために、次の手順で関数を作成します。
- 検索対象の文字列を含む検索ワードの表を作成します。:
例:-, /
- 対象文字列が1で作成した表の文字列の中で左から何番目に存在するかを探します。:
FIND(1の範囲, セル)
- もしエラーが発生した場合は、それを空白に置き換えます。:
IFERROR( 2の結果, セル),"" )
- 3で得られた配列の中から最大の数値を返します。:
MAX( 3の結果 )
- 配列関数に変換します。:式をセル内で全選択し、
Shift
+Ctrl
+Enter
を押すと、波括弧({}
)が追加されます。 Googleスプレッドシートで開くと、波括弧({}
)の代わりにARRAYFORMULA
などが追加されます。
練習用の表
実際にExcelを使用して、文字列が左から何番目にあるのかを探す関数(複数条件)を作成してみましょう。
検索文字列 |
---|
- |
/ |
入力 | 期待値 | 関数 | 結果 |
---|---|---|---|
1-123 | 2 | ||
123-1234 | 4 | ||
123/1234 | 4 |
🔗(閲覧専用)練習用のEXCELはこちら ← ダウンロードできます
答え
それでは、Excelを使用して確認してみましょう。
検索文字列 |
---|
- |
/ |
入力 | 期待値 | 関数 | 結果 |
---|---|---|---|
1-123 | 2 | {=MAX(IFERROR(FIND($F$2:$F$3,A2),0))} | OK |
123-1234 | 4 | {=MAX(IFERROR(FIND($F$2:$F$3,A3),0))} | OK |
123/1234 | 4 | {=MAX(IFERROR(FIND($F$2:$F$3,A4),0))} | OK |
実際のExcelでの具体的な数値は、以下の通りです。
入力 | 期待値 | 関数 | 結果 |
---|---|---|---|
1-123 | 2 | 2 | OK |
123-1234 | 4 | 4 | OK |
123/1234 | 4 | 4 | OK |