アプリ版:「スタンプのみでお礼する」機能のリリースについて

セル内の文章内で"[説明]"を先頭に空白までを抜粋して別のセルに表示できませんか?
LEFT・MID・RIGHT・FIND関数は試しました
=MID(B2,FIND("[説明]",B2),60)
=LEFT(B2,60)
表示させる文字数が各セルでまちまちなので指定ができません
指定してしまうと他の項目まで表示してしまうためできれば説明文のみが希望です
なので最後の空白または次の[]手前までで〆れば
説明文章のみ表示できるかなと思ったのですが(;^_^A
ちなみに関数では表示のみですがVBAでは転記できるのでしょうか?
B列に貼り付けたらC列に[説明]から空白までまたは次の[]手前までが転記出来たらありがたいです

質問者からの補足コメント

  • 空白ですが改行されて1行空いている状態でした
    なので全角半角の指定はわかりませんm(__)m
    [〇〇]は次の項目になりますので②になります

    No.2の回答に寄せられた補足コメントです。 補足日時:2024/02/29 17:32
  • https://itskill.hatenablog.com/entry/2021/05/02/ …
    こちらも試してみましたがCSVが見つかりませんでした(;^_^A

      補足日時:2024/02/29 17:48

A 回答 (5件)

No4の追記です。


A5のケース:[説明]以降が表示対象なので、[説明]XYZが表示される
A6のケース:[説明]がないのでなにも表示されない
A7のケース:[ 説明 ]は、間に空白があるので、[説明]ではない。よってなにも表示されない。
「Excel関数またはVBAでの質問になり」の回答画像5
    • good
    • 0

以下のような結果で良いのでしょうか。


A列が元データ、B列が変換結果です。
A1のケース:改行の前までを表示
A2のケース:[○○]の前までを表示
A3のケース:[○○の後に]がないので、最後まで表示(半角空白の後も表示)
A4のケース:[○○の後に]がないので、最後まで表示(全角角空白の後も表示)
「Excel関数またはVBAでの質問になり」の回答画像4
    • good
    • 0

こんにちは



以下は、関数での例です。

>LEFT・MID・RIGHT・FIND関数は試しました
それを組み合わせれば宜しいでしょう。
・"[説明]"以降の半角スペースまたは"["までを切り出します。
・半角スペースや"["が見つからない場合は、文字列の最後までを取ります。
・"[説明]"が存在しない場合には、結果はエラーになります。

=MID(B2,FIND("[説明]",B2),MIN(FIND({" ","["},B2&" [",FIND("[説明]",B2)+4))-FIND("[説明]",B2))

※ 全角スペースなど終わりをチェックしたい文字が他にもある場合も同様で、その文字を追加すればそのままで切り出しが可能です。
※ Excel 2019 にて確認済。
    • good
    • 1
この回答へのお礼

回答ありがとうございますm(__)m
説明の内容文の中で半角スペースがある場合は
そこで切れてしまいますよね?
スペースの設定なしにして次の"["だけにすればOKですよね?
=MID(B2,FIND("[説明]",B2),MIN(FIND({"["},B2&" [",FIND("[説明]",B2)+4))-FIND("[説明]",B2))

お礼日時:2024/03/01 09:37

空白とは、以下のどれを指してますか。


①半角の空白
②全角の空白
③半角の空白と全角の空白の両方

次の[]とは、
①[のみでもOK
②[の後に任意の文字が0文字以上あり、次に]があること
のどちらでしょうか。
この回答への補足あり
    • good
    • 0

VBAです。


標準モデュールに以下のソースを貼りつけ

Function setumei(rStr As String)
If InStr(1, rStr, "[説明]") = 0 Then
setumei = ""
Exit Function
End If
setumei = Right(rStr, Len(rStr) - InStr(1, rStr, "[説明]") + 1)
If InStr(1, setumei, " ") = 0 Then
Exit Function
End If
setumei = Left(setumei, InStr(1, setumei, " ") - 1)
End Function

シートで =setumei(B2)
空白は半角のスペースを想定しています。
全角なら2カ所ある InStr(1, setumei, " ") を InStr(1, setumei, " ")に変えて下さい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A