
スプレッドシートでテキスト処理を行う際、特定の文字(この場合は「?」)以降の文字列を削除したい場合があります。今回は、LEFT関数とFIND関数を組み合わせることで、セル内の「?」以降を削除する方法を解説します。以下の関数は、セル B2 の中で「?」が含まれている場合、その位置より前の文字列のみを抽出します。
サンプル関数
=LEFT(A1, FIND("?", A1 & "?") - 1)コード解説
B2 & "?"
- この部分は、B2 の内容の末尾に「?」を強制的に追加します。これにより、B2 に「?」が含まれない場合でも FIND 関数が常に値を返すようになります。
FIND("?", B2 & "?")
- 追加した「?」を含め、B2 内の「?」の位置を検索します。B2 に「?」が含まれている場合は、その位置が返され、含まれていなければ末尾に追加された「?」の位置が返されます。
LEFT(B2, … - 1)
- LEFT 関数は、B2 の文字列の先頭から指定した文字数だけ抽出します。FIND 関数で取得した位置から 1 を引くことで、「?」そのものを除いた文字列を取得します。
実用例
URLのパラメーターを取り除く際に使えます。
