教えて!しごとの先生
教えて!しごとの先生
  • 解決済み

Excelの関数で以下の文字列処理をしたいと考えていますが善策が浮かびません。 恐れ入りますがどなたかおわかりになる方…

Excelの関数で以下の文字列処理をしたいと考えていますが善策が浮かびません。 恐れ入りますがどなたかおわかりになる方お願い致します。元データ 例A1) onion / onions 例A2) apples / pears for sale 例A3) ripe oranges / ripe mandarines for sale 例A4) lemonades for sale / cola for sale 持って行きたい状態 例B1) onion ( / onions を除去) 例B2) apples for sale ( / pears を除去) 例B3) ripe oranges for sale ( / ripe mandarines を除去) 例B4) lemonades for sale ( / cola for sale を除去) 基本的にはスラッシュよりもあとの表現をカットしたいです。(例A1→例B1) 例A2〜A4のようにfor saleなどの枕詞がついている場合には、枕詞が消えないように、例B1〜B4のように整理したいのです。 「スラッシュよりもあとの文字列」に対し、「スラッシュよりも前の文字列と同じ単語数分」消せばよいのではないかと考えております、が、Excel関数での実装方法がわかりません。 非常に困っておりますので、どなたかよろしくお願いします! (google spreadsheetで作業をしているので、Google独自の関数やアドオンがあるのであればそれを使う形でも問題ありません)

続きを読む

184閲覧

回答(3件)

  • ベストアンサー

    GoogleSpradsheet のほうがSPLIT関数を使えるので数式が短くなるかも・・ =if(or(countif(A1,"*sale")=0,countif(A1,"*sale /*")),index(split(A1,"/"),1),index(split(A1,"/"),1)&"for sale") 下にコピー

  • 直接の回答でなく申し訳ありません。 付加したい単語群が色々なのでかなり複雑な内容ですね。 マクロにした方が早いと思いますが、マクロはNGですか。 それから、この処理は1回だけやりたいのか、これからも定期的にこの処理をしたいのかどちらでしょうか。 1回だけであれば、関数だけでなくデータ区切り位置の操作を交えてであれば、何とか出来ました。 ただ手作業が2回入るので、何度も使う処理なら別の方法を考えてみたいと思います。

    続きを読む
  • B1セルには次の式を入力して下方にドラッグコピーすればよいでしょう。 =IF(A1="","",IF(OR(NOT(ISERROR(FIND("for sale",LEFT(A1,FIND("/",A1)-1)))),ISERROR(FIND("for sale",MID(A1,FIND("/",A1)+1,50)))),LEFT(A1,FIND("/",A1)-1),LEFT(A1,FIND("/",A1)-1)&MID(A1,FIND("for sale",A1),10)))

    続きを読む

< 質問に関する求人 >

google(東京都)

この条件の求人をもっと見る

< 平日勤務で週末はリフレッシュしたい人におすすめ >

正社員×土日祝休み(東京都)

求人の検索結果を見る

もっと見る

この質問と関連する質問

    この質問と関連する企業

    募集中の求人

    求人の検索結果を見る

    この企業に関連する質問

    < いつもと違うしごとも見てみませんか? >

    覆面調査に関する求人(東京都)

    この条件の求人をもっと見る

    Q&A閲覧数ランキング

    カテゴリ: 仕事効率化、ノウハウ

    転職エージェント求人数ランキング

    • 1

      続きを見る

    • 2

      続きを見る

    • 3

      続きを見る

    あわせて読みたい
    スタンバイプラスロゴ

    他の質問を探す

    答えが見つからない場合は、質問してみよう!

    Yahoo!知恵袋で質問をする

    ※Yahoo! JAPAN IDが必要です

    スタンバイ アプリでカンタン あなたにあった仕事見つかる