- ベストアンサー
文字列から必要な文字列を抽出する方法
kon555の回答
おそらく効率化自体は可能です。関数よりVBA向きの案件だと思います。 一番遠回りですが確実な手段は、貴方自身がVBAのスキルを身に着ける事ですね。 こうしたデータ選別の場合に重要なのは、どんな条件で会社名とそれ以外とを分けるか、という部分です。 ご提示の「英語の大文字箇所が1つの利用会社名を表し」というだけなら簡単です。 https://vbabeginner.net/vbaで文字列から英字のみを抽出する/ のような形で、英字のみや大文字のみ、小文字のみを抜き出すのは容易なので。 また「会社名一覧は一部ですがデータとしてあります。」という事なので、それと一致するかを条件付けとする事も出来ます。 ただ書かれている内容からすると、実務的には大文字を抜き出すのではダメで、一覧表とのマッチングでも十分ではないようです。 この判定条件の設定が一番のキモです。この部分が明確になっていれば、確実に対応可能です。 そしてこの部分を考えられるのは、実データを知っている貴方だけです。なので「一番遠回りですが確実な手段は、貴方自身がVBAのスキルを身に着ける事です」となるわけです。 で、そこで終わるのは何なので、一応軽い作業補助のマクロを組んでみました。 Sub tes() Dim i As Long Dim α1, α2 α1 = InputBox("指定数を入力してください") For i = 0 To CLng(α1) α2 = α2 & ActiveCell.Offset(0, i) Next ActiveCell = α2 End Sub マクロを起動すると数字を入力するウインドウが起動します。 アクティブなセルを起点として、ウインドウに入れた数字の分だけ、横のセルの語句を合成してアクティブセルを上書きします。 「B」の形の表であれば、これで楽になるような? 10分程度で組んだものなので色々雑なのはお許しを。 またエクセルのマクロはショートカット登録できますので、それを活用するとさらに楽になります。 https://www.moug.net/tech/exvba/0150112.html 個人的にはこうしたある程度の汎用性のある作業補助マクロを自分で組んで使い分けると、貴方が今従事しているような単純事務作業は劇的に楽になります。 興味があればお試しを。
関連するQ&A
- エクセルで文字列の抽出方法についてお尋ねします。
宜しくお願いします。 エクセルを使用して条件付の文字列の抽出をしたいと思っています。 A列のセルに2つの文字列がスペースを挟んで50行ほど入っています。 また、その中にはひとつの文字列しか入っていないものもあります。 イメージ的には以下のようなものです。 | A | B ------------------------------------- 1|エクセル マウス| -------------------------------------- 2|エクセル ペン | -------------------------------------- 3|エクセル ノート | ------------------------------------- 4|エクセル | ------------------------------------- 上記の例では「エクセル」という文字はひとつのセルですが コレが多くあります。 ここで、2つの文字列の組み合わせだけをB列に表示させることは 出来ますか? また、このパターンが終わった後に、「エクセル」という文字列の代わりに 「ワード」という文字列のものが51行目から続きます。 ここでも2つの文字列の組み合わせと「ワード」単体のものとが あるので、出来れば2つの文字列の組み合わせだけをB列に表示し なおかつ上の方へ詰めて表示したいのです。 分かりづらい質問で申し訳ありません。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCELで文字列内のスペースの抽出
EXCEL2000を使用しています。 A列に文字列が300行ほど入力されています。 ある条件で、各文字列の先頭にスペース(空白)が0個~3個ついています。 いま、文字列の先頭にあるスペースの数をB列に表示させたいのですが、 どのような関数を使えば良いでしょうか。 ご存じの方、ご教授下さい。
- ベストアンサー
- オフィス系ソフト
- 文字列のスペースを抜く方法
エクセルで文字列の間にスペースが入っている文字列のスペースの抜き方を教えてください。 神奈川県 横浜市 TEL ××× 山田 太郎←この文字列のスペースを抜きたいんです。 こんな感じで、複数行に渡ったデータなので区切ることが出来ませんでした。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 文字列の抽出がうまくできません
こんにちは。Perl初心者です。みなさんのお力をお借りしたく、初めて投稿させていただきました。よろしくお願いします。 現在、ファイルから特定した行を抽出し、その行に含まれる文字列を抽出しようとしているのですが、その文字列の抽出がうまくできません。 <文字列を含むファイル:xxx.txt> -------------------------- To 鈴木 太郎さん 1行目 : 01,りんご, 3 個, ナシ, 1個 14行目 02,キャベツ, 3 個, なす, 10本 15行目 : -------------------------- <スクリプトファイル:yyy.pl> -------------------------- open(DAT, "./xxx.txt") || die("can't open file : ($!)"); @file = <DAT>; close DAT; if ( $file[0] =~ /(\W+\s)(\W+)/ ) { print "$1\n"; } print "$file[13]\n"; print "$file[14]\n"; -------------------------- <結果> -------------------------- 鈴木 -------------------------- 抽出したい結果は「鈴木 太郎」なんですが、上記のような結果(「1byteのスペース」鈴木「2byteのスペース」)になってしまいます。xxx.txtの「To」と「鈴木」の間と、「鈴木」と「太郎」の間にはそれぞれ1byteのスペースがあります。どうやったら「鈴木 太郎」と抽出できるか教えてください。 スクリプトは「Copal2(ver2.77)」というツールを使って作りました。そのツールではエンコードは「自動判別」となっており実際何が使われているのか分かりません。 また他にも質問があります。 今抽出したい行を指定して出力させてますが、 「To」から始まる行 「01」といった2桁の数字から始まる行 というような抽出の仕方をしたいのですが可能でしょうか? 本当に初心で大変恐縮ではありますが、教えてください。 よろしくお願いいたします。
- ベストアンサー
- Perl
- [Excel] ある列にある文字列を含む場合にその文字列を削除する方法
UFJ東京三菱銀行の明細をDownloadできないので、コピペしています。 しかしながら、金額に"円"という文字を含むため、そのセルは通貨ではなく、文字列として認識してしまいます。ですのでそのセルに含まれる 特定の文字列"円"をワンアクションで削除していきたいのですが、 どのように関数(マクロ?)を組んでいいかわかいません。 ご助言をお願いします。
- ベストアンサー
- オフィス系ソフト
- 文字列の数抽出、行挿入マクロ
急きょ下記処理を実施することになったのですが、本やネットで下記処理ができるような マクロを色々探していもなかなか見つからず…。(T_T) どなたか詳しい方がいらっしゃいましたら教えていただけませんでしょうか? ・A列に特定の文字列(;)があった場合、その列をコピー。 ・その列の下に文字列(;)の数と同数の行を挿入。 ・挿入した行のAセルに、文字列(;)のすぐ後ろの1ケタを貼り付け。 ・(挿入行が2行の場合) さらに下に挿入した行のAセルに、左から2つ目の文字列(;)の すぐ後ろの1ケタを貼り付け。 なお、A列の行数は、現時点で500行ほどあり、今後増える可能性もあります。 【処理する前】 A列 B列 C列 1行目 1;32 555 AAA 2行目 29;1;4 222 GGG 3行目 600 111 FFF 【マクロ実行後】 A列 B列 C列 1行目 1 555 AAA 2行目 32 555 AAA 3行目 29 222 GGG 4行目 1 222 GGG 5行目 4 222 GGG 6行目 600 111 FFF どうぞよろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- Excelでの文字列抽出
Excelで文字列の抽出とそれを並べる方法を教えてください。 関数だけを用いて実現できるのか、マクロを使わなければできないのかも分かりません。 この関数をこの様に使えばよいというのを教えていただけると幸いです。 やりたいことは、下記条件で、シート2のB列にシート1のG列~P列までに登録されている担当者名に該当するB列の店名を4店まで抽出したいのです。 分かりづらくて申し訳ございませんが、よろしくお願い致します。 ------------------------ シートが2枚(シート1/シート2)あります。 シート1 B列は4行毎に結合されており、店名が登録されています。 G列~P列までは1行目は担当者名、2,3,4行目は補足情報が登録されています。 シート2 A列に担当者名が入っています。(4行毎に結合しています) B列にA列の担当者名に該当する、シート1の店名を4店まで登録したい。
- ベストアンサー
- 財務・会計・経理
- 文字列抽出方法の関数を教えてください。
文字列抽出方法の関数を教えてください。 文字列に“{\”で始まる文字があった場合、そこから半角空白(1文字)までを削除。 次に“}”を削除して、残りの部分を表記させたい。 {\○△□● }の中は ○・・・半角英語 △・・・半角数字 □・・・半角数字もしくは空白 ●・・・半角空白もしくはなし 次に半角空白があり“}”があります。 “{\”から一番目の半角空白を削除、“}”も削除したいです。 英語や数字はさまざまな文字が入ります。 下記☆が例になります。⇒以降が表記させたい内容です。 ☆ファイル名{\f3 :} ⇒ファイル名 : ☆{\f91 ( }{\f9 「}{\f91 12 }{\f9 設定}{\f91 }{\f9 」}{\f91 }{\f9 参照}{\f91 )} ⇒( 「12 設定 」 参照 ) 文字列の中には複数削除したい部分がある場合があります。 今は手作業で作業していて、とっても時間がかかるし間違える場合もあります。 何かいい方法があれば教えてください。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 文字列から複数の文字列を抽出する方法
画像の様な2パターンの表で 英語の大文字箇所が1つの会社名だとした場合、 会社名のみの効率的な抽出の仕方が知りたいです。 会社名の一覧は別のエクセルシートであります。 もしご存知でしたら、教えて頂けると幸いです。
- ベストアンサー
- Excel(エクセル)
- テキストから文字列の抽出法
テキストから文字列を抽出して、比較したいのですが、良いアプリケーションをご存じないでしょうか? 具体的には2つの異なるフォーマットのファイルがあり、それぞれに(同一の文字列かどうか)比較したい文字列は1行ずつソートされた形で含まれています。しかしその同じ行に時刻などの付加情報が含まれているため、行単位で比較することができないのです(行単位で比較できるアプリは知っています)。 文字列とはファイル名ですので、*.* の形で指定して、抽出できればと思うのですが... もしご存知の方がいらっしゃいましたら、教えてください。
- ベストアンサー
- その他(ソフトウェア)
お礼
お礼が遅くなり申し訳ございません、回答いただきありがとうございました!参考にさせて頂きました。