2016-04-05 13 views
0

私はGoogleシートを持っています。その後、現在のセルのテキストに部分文字列を置き換えますか?

Yes/No 

または可能性の二つの理由と、このような別のスラッシュで区切られた説明、::

私はこのように、スラッシュで区切られた2つのオプションのいずれかで、各セル内のテキスト、見てみたいです
Yes/Yes/Reasons for the answer 

そして、最初のスラッシュの後にすべてを削除したい場合は、しかし、を残しておきます。

これを行うにはどうすればよいですか?私はREGEXPREPLACEを使用したいと思うし、私はおそらくこのような何かしたい:

=REGEXPREPLACE($currentcell, "\/.*[\/|$]", "") 

しかし、二つのこと:

  1. 私は作成せずに現在のセルの値を取得する方法があまりにもわからないし循環参照
  2. [\/|$]を試してみましたが、「二番目のスラッシュか文字列の終わり」の正規表現を作成する方法はわかりませんが、これが正しいかどうかはわかりません。

更新日:(2)トリッキーかもしれません。 REGEXPREPLACEは私が必要とするものではないようです。 REGEXEXTRACTもありません。うーん。

答えて

1

私は右のあなたを理解していれば、あなたは変換する必要があります。

Yes/No → Yes 
Yes/Yes/Reasons for the answer → Yes/Reasons for the answer 
No/Yes/Reasons for the answer → No/Reasons for the answer 

はここで助けmigth式です:

=SUBSTITUTE(A1,CONCATENATE(REGEXEXTRACT(A1,".+(\/.+)\/.+|(\/.+)")),"") 

この式で使用する正規表現は、最初のスラッシュとeverithingのいずれかを探します2番目のスラッシュまで、またはスラッシュと先頭のシンボルのみ。 CONCATENATEは文字列を結合するために使用され、substituteが使用されます。 REGEXREPLACEも仕事ができる:

=REGEXREPLACE(A1,CONCATENATE(REGEXEXTRACT(A1,".+(\/.+)\/.+|(\/.+)")),"") 

、これは動作しません場合は、あなたが望む結果何のより多くの例を与えてください。また、より洗練されたソリューションがあります。

+0

それは素晴らしいです、ありがとう!唯一の問題は、空のセルにエラーが発生することです。 - 関数REGEXEXTRACTパラメータ2の値。+(\ /.+)\ /.+ |(\ /.+) "は、関数REGEXEXTRACTのパラメータ1の値と一致しません""。その周りには何か? – Richard

+0

また、A1セルでは使用できません。循環依存エラーが発生します。しかし、その周りには方法がないかもしれないと思います。 – Richard

+1

1. 'REGEX'関数は、空文字列を扱うときにエラーを返し、式をiferrorに貼り付けます:' iferror(function) '。 2.循環依存エラーは、Googleのシート内のすべての関数でよく発生するエラーです。セルは、それ自体では理解できません。 3.必要に応じて、数式をArrayFormulaに変換すると、列全体が自動的に展開されます。 –

0

あなたはまた、あなたの正規表現でAN「または」状態でそれを簡素化することができます:

=CONCATENATE(REGEXEXTRACT(A1,"(^.*\/).*\/(.*$)|(^.*)\/.*$")) 

注:1短い常にtrueになります長いオプションは、それがそうでなければチェック最初の条件になりたいです。

関連する問題