質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

1回答

316閲覧

関数を使用して、文字列から「左から数えて4番目の特定の文字まで」を抽出したい。

U.M

総合スコア3

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2022/01/25 06:23

1.やりたいこと
下記のように、A列のセルに文字列(リンク)があり、文字列の左から4番目の「/」(スラッシュ)までの文字を抽出し、隣のB列のセルに反映させたいです。(文字列内に「/」が何度も出てきます)

イメージ説明

2.自分でやってみたこと
・左から文字を抽出するにあたって、「LEFT関数」が必要
・4番目の「/」を文字列から探し出すことが必要
だと考えたので、この2つを合体して、下記では求められることが分かりました。

=LEFT(A1,FIND("/", A1, FIND("/", A1)+49))
(4番目のスラッシュが49文字目にある状態)

しかし、これだと毎回手作業で4番目のスラッシュが何文字目にあるのか数えてからでないと抽出できないため、コピペで抜き出すより手間になってしまいます…。

どうにかして、1列の関数内で4番目のスラッシュまでの文字を抽出することはできないでしょうか…?ご協力お願いいたしますmm

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

必ず「4 番目」のスラッシュで固定なら、FIND を入れ子にすれば
4 番目のスラッシュの位置を取れそうな気がします。

例)

A
1隣の★客は★よく★柿食う★客だ
関数
FIND("★", A1, 1) 1つめの★の位置
FIND("★", A1, FIND("★", A1, 1)+1) 2つめの★の位置
FIND("★", A1, FIND("★", A1, FIND("★", A1, 1)+1)+1) 3つめの★の位置

excel

1=LEFT(A1, {3つ目の★の位置}) 2 3=LEFT(A1, FIND("★", A1, FIND("★", A1, FIND("★", A1, 1)+1)+1))

隣の★客は★よく★

※この例だと、★ が 3 つ無い場合は #VALUE! になります。
エラーの場合は空白にしたいのであればさらに IFERROR() で囲む、ですかね。

追記

入れ子にしなくてもn番目の位置を取る方法がありました。なるほど...

https://exceljet.net/formula/find-nth-occurrence-of-character
(余所様のサイトです)

  • 3 番目の★の位置
    FIND(CHAR(160), SUBSTITUTE(A1, "★", CHAR(160), 3))
  1. まず SUBSTITUTE で「3 番目の ★ を CHAR(160) に置換」
  2. それを FIND() で囲んで、CHAR(160) の位置を取得

これだと入れ子にしなくても良いですね...
CHAR(160) はおそらく「元の文字列中に出現しない文字」なら何でも良いのでしょうね。

投稿2022/01/25 06:58

編集2022/01/25 07:18
sk_3122

総合スコア1126

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

U.M

2022/01/25 08:12

sk_3122様、ご回答いただきありがとうございます! LEFT関数とお教えいただいた「FIND(CHAR(160)…」の関数を組み合わせたところ、希望通り4番目の/までの文字を抜き出せました…!(因みにCHAR(1)でもいけました) 解決しましたので、ベストアンサーにさせていただきますmm
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問