目次
複数のセルから、ホワイトスペースのトリミング、特殊記号(最初と最後のN文字も)、特定の文字の前後にある同じ文字列を一度に削除する数式と数式を使わない方法を紹介します。
一度に複数のセルから同じテキストを削除することは、追加と同じくらい重要で厄介なことです。 いくつかの方法を知っている場合でも、今日のブログ記事では新しい方法を見つけることができます。 関数とその既製の数式をたくさん共有して、いつものように、最も簡単な数式なしを最後に保存します;)。
セルからテキストを削除するGoogle Sheetsの数式
まずは、Google Sheetsの標準関数で、セルから文字列や文字を削除する関数を紹介します。 万能な関数はないので、いろいろなケースを想定した計算式とその組合せを紹介します。
Google Sheets: 空白を削除する
インポートした後や、複数のユーザーが同時にシートを編集した場合、空白がセルに入り込みやすくなります。 実際、余分な空白は非常に多いため、Google Sheetsには空白をすべて削除する特別なトリムツールが用意されています。
空白を削除したいGoogle Sheetsのセルをすべて選択し、次のコマンドを実行するだけです。 データ> 空白を削除する を表計算ソフトのメニューから選択します。
このオプションをクリックすると、選択範囲の先頭と末尾のスペースがすべて取り除かれ、データ間の余分なスペースはすべて1つになります。
Google Sheetsのテキスト文字列から他の特殊文字を削除する
残念ながら、Google Sheetsにはスペース以外の文字を「トリミング」するツールはありません。 ここでは数式で対処する必要があります。
パワーツールは、空白文字を含む、あなたがクリックで指定したすべての文字から範囲を解放します。
ここでは、アパート番号や電話番号の前にハッシュタグを付け、間にダッシュや括弧を付けて対処しています。
それらの特殊文字を取り除くために数式を使用します。
SUBSTITUTE関数がそれを助けてくれる。 通常、ある文字を別の文字に置き換えるのに使われるが、それを逆手にとって、不要な文字を・・・そう、何もない状態に置き換えることができる :) つまり、削除するのである。
この関数が必要とする引数を見てみましょう。
SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])- テキスト検索 は、処理するテキストか、そのテキストを含むセルです。 必須。
- 検索対象 は、探して削除したい文字です。 必要です。
- replace_with - 不要な記号の代わりに挿入する文字 必須
- 発生番号 - のインスタンスが複数ある場合に、どの文字を置き換えるかを指定します。 これは完全に任意であり、この引数を省略すると、すべてのインスタンスが新しいものに置き換えられます ( replace_for ).
では、遊びましょう。 ハッシュタグを探したいんです( # ) にある。 A1 を'nothing'に置き換えて、スプレッドシートでは二重引用符でマークされる( "" )。 以上のことから、次のような数式を作ることができる。
=substitute(a1,「#」,「""」)
ヒント:Google Sheetsの数式では文字列をダブルクォートで記述するため、ハッシュタグもダブルクォートで記述しています。
Google Sheetsが自動で計算しない場合は、この数式を列の下にコピーすると、ハッシュタグのないアドレスが得られます。
しかし、これらのダッシュやブラケットについてはどうでしょうか? 追加の数式を作成する必要がありますか? いいえ!1つのGoogle Sheetsの数式で複数のSUBSTITUTE関数をネストすると、各セルからこれらの文字をすべて削除することができます。
=substitute(substitute(a1, "#","),"(","),""),"-","")
この式は、文字を1つずつ削除し、途中から各SUBSTITUTEが次のSUBSTITUTEを見る範囲となる。
ヒント:これをArrayFormulaで囲むと、列全体を一度にカバーできます。 この場合、セル参照( A1 ) をカラム ( A1:A7 )もあります。
=ArrayFormula(SUBSTITUTE(SUBSTITUTE(A1:A7, "#","),"(","),"),"-","))
Google Sheetsのセルから特定のテキストを削除する
Google Sheetsでは前述のSUBSTITUTE関数を使ってセルからテキストを削除することができますが、もう一つの関数であるREGEXREPLACEも紹介したいと思います。
その名前は「正規表現置換」の頭文字をとったものです。 そして、正規表現を使って削除する文字列を検索し、その文字列を ' ナッシング」( "" ).
ヒント:正規表現を使うことに興味がない場合は、このブログ記事の最後でもっと簡単な方法を説明しています。
ヒント:Google Sheetsで重複を検索して削除する方法を探している場合は、代わりにこのブログ記事をご覧ください。 REGEXREPLACE(テキスト, regular_expression, replacement)
ご覧のように、この関数には3つの引数があります。
- テキスト - は、削除する文字列を探す場所です。 二重引用符で囲まれたテキストそのものか、テキストのあるセルや範囲への参照にすることができます。
- 正規表現 - この引数は、様々な文字の組み合わせからなる検索パターンである。 このパターンにマッチするすべての文字列を探すことになる。 この引数は、私が言うのもなんだが、すべての楽しみが起こるところである。
- かけかえ - 新しい希望のテキスト文字列。
データのあるセルには、国名も入っているとします( 米国 )を、セル内の異なる場所に配置した場合。
REGEXREPLACEはどのように削除するのに役立ちますか?
=regexreplace(a1,"(.*)us(.*)","$1 $2")
具体的な計算方法はこうだ。
- セルの内容をスキャンします。 A1
- このマスクにマッチする "(.*)US(.*) "です。
このマスクは、この関数に対して 米国 前が何文字であろうと (.*) またはフォロー (.*) 国名
そして、マスク全体は、関数の要求に従って二重引用符に入れられる :)
- さいごのぶぶん "$1 $2" - が、代わりに手に入れたいものです。 $1 と $2 は、それぞれ2つのグループのキャラクターを表しています。 (.*) - の前後にあるすべてのグループを返すように、3番目の引数でこれらのグループに言及する必要があります。 米国
に関しては 米国 を返すようにしたいのですが、3番目の引数には書いていません。 A1 なくしては その 米国 .
Tip.様々な正規表現を構築し、セルの様々な位置にあるテキストを探すために参照できる特別なページがあります。
ヒント:残ったカンマは、前述のSUBSTITUTE関数で消すことができます ;) REGEXREPLACEをSUBSTITUTEで囲んで、1つの数式ですべてを解決することもできます。
=substitute(regexreplace(a1,"(.*)us(.*)","$1 $2"),",""")
選択されたすべてのセルの特定の文字の前/後のテキストを削除する
例1.Google SheetsのREGEXREPLACE関数
特定の文字の前後をすべて削除する場合、REGEXREPLACEも役に立ちます。 この関数には3つの引数が必要であることを忘れないでください。
REGEXREPLACE(text, regular_expression, replacement)そして、上記で関数を紹介したときに述べたように、関数が何を見つけて削除すればよいかを知るために、2番目の関数を正しく使用する必要があります。
では、住所を削除して電話番号だけをセルに残すにはどうすればよいのでしょうか。
ここで、私が使う計算式はこうです。
=REGEXREPLACE(A1,".*\n.*(\+.*)","$1")
- この時に使う正規表現を紹介します。 ".*\n.*(\+.*)"
前編では-。 .*\n.* - を使用しています。 バックスラッシュ+N で、セルが2行以上あることを示すために、その改行の前後をすべて削除する関数が必要です(それを含む)。
括弧の中にある2番目の部分 (\+.*) は、プラス記号とそれに続くものをそのまま残しておきたいと言っています。 この部分を括弧で括って、グループ化して後々まで覚えておくのです。
バックスラッシュがないと、プラスは他の文字を表す式の一部に過ぎません(たとえばアスタリスクのように)。
- 最後の引数$1に関しては、この関数は第2引数のプラス記号とその後に続くグループのみを返すようにします。 (\+.*) .
同じように、電話番号をすべて削除しても、住所は残せます。
=REGEXREPLACE(A1,"(.*\n).*","$1")
このときだけ、改行の前にあるものをすべてグループ化して(そして返して)、残りを消去するように関数に指示するのです。
例2.RIGHT+LEN+FIND
Google Sheetsには、特定の文字より前のテキストを削除する関数がいくつかあります。 それらは、RIGHT、LEN、FINDです。
注意:これらの関数は、保持するレコードが同じ長さである場合のみ有効です。 そうでない場合は、代わりにREGEXREPLACEを使用するか、さらに良い方法は、最後に説明する簡単なツールを使用することです。
このトリオを特定の順序で使用すると、同じ結果を得ることができ、文字 - プラス記号の前にテキスト全体を削除することができます。
=right(a1,(len(a1)-(find("+",a1)-1))))
この計算式の仕組みを説明しよう。
- FIND("+",A1)-1 は、A1 のプラス記号の位置番号を特定する( 24 ) を計算し、合計にプラスそのものが含まれないように 1 を引きます。 23 .
- LEN(A1)-(FIND("+",A1)-1) は、A1 の文字数の合計をチェックします ( 40 )から23(FINDで数えた)を引く。 17 .
- そして、RIGHTはA1の最後(右)から17文字分を返します。
残念ながら、私の場合(電話番号はクリア、住所はキープ)、住所の長さが異なるため、この方法では改行後のテキストを削除することはあまりできません。
まあ、いいんです、どうせなら最後にあるツールの方がこの仕事はうまくいきますから;)
Google Sheetsの文字列から最初/最後のN文字を削除する
セルの先頭や末尾から一定数の異なる文字を削除する必要がある場合、REGEXREPLACEやRIGHT/LEFT+LENも役に立ちます。
注:これらの関数はすでに上で紹介したので、ここでは手短に、すぐに使える公式を紹介する。 あるいは、一番最後に紹介する最も簡単な解法に飛びつくのもいい。
そこで、これらの電話番号からコードを消去するにはどうしたらよいでしょうか。 つまり、セルから最初の9文字を削除するのです。
- REGEXREPLACEを使用します。 9文字目まで(その9文字目を含む)を検索して削除する正規表現を作成します。
=REGEXREPLACE(A1,"(.{9})(.*)","$2")
.
ヒント:最後のN文字を削除するには、正規表現内のグループを入れ替えるだけです。
=REGEXREPLACE(A1,"(.*)(.{9})","$1")
- また、RIGHT/LEFT+LENは、それぞれセルの末尾または先頭から削除して残りの部分を返す文字数をカウントします。
=right(a1,len(a1)-9)
ヒント:セルから最後の9文字を削除するには、RIGHTをLEFTに置き換えます。
=left(a1,len(a1)-9)
- 最後にREPLACE関数ですが、左から9文字ずつ、何もない状態に置き換えるように指示します( "" ):
=replace(a1,1,9,"")
注)REPLACEは処理開始位置が必要なため、セルの末尾からN文字削除する必要がある場合は使えません。
Google Sheetsで特定のテキストを数式なしで削除する方法 - Power Toolsアドオン
しかし、前述のような方法をすべて包含し、必要なラジオボタンを選択するだけの特別なツールがあることをご存知ですか? 数式も余分な列もなく、これ以上の相棒は望めません;D。
私の言葉を信じる必要はありません。パワーツールをインストールして、ご自分の目で確かめてください。
- 最初のグループでは、次のことができます。 複数の部分文字列または個々の文字を削除する 選択されたすべてのセルの任意の位置から一度に。
Power Toolsのもう一つのツールは、タイムスタンプから日付と時刻の単位を取り除くものです。 Split Date & Timeという名前です。
時刻と日付の単位を削除することと、分割ツールはどう関係があるのでしょうか? タイムスタンプから時刻を削除するには 日付 残しておきたい部分でもあり、また刻んでおきたい部分でもあるので ソースデータの置き換え 上のスクリーンショットと同じです。
このツールは、日付単位を抽出し、タイムスタンプ全体をそれに置き換えます。 つまり、このGoogle Sheets用アドオンは、タイムスタンプから時間単位を削除するのです。
Google Storeからアドオンをインストールすれば、これらすべてをはじめ、30以上の表計算ソフトの時間短縮機能が利用できます。 最初の30日間は完全に無料で利用できるので、投資する価値があるかどうかを判断する時間があります。
このブログ記事のどこかに関連する質問があれば、下のコメント欄でお会いしましょう!