• ベストアンサー

前後の入替(区切りが2回出現する場合)

kkkkkmの回答

  • kkkkkm
  • ベストアンサー率65% (1636/2483)
回答No.4

> okwaveは一度投稿すると、訂正が出来ないのが残念です。 まさに、その通りだと思います。訂正とか自分の回答削除とかできてもいいと思うんですが、そうすると問題になることもあるんでしょうね。

NuboChan
質問者

お礼

今回も、アドバイスを頂きありがとうございました。 おかげさまで無事処理できました。

関連するQ&A

  • エクセル:特定文字の前後抽出で、特定文字がない場合

    D列にあるテキストの中から、「>」前後の文字を抜き出すために 下記の数式を使っていたのですが、 ■>より前 =LEFT(D2,FIND("/",D2,)-1) ■>と>の間 =MID(D2,,FIND("/",D2,)+1,FIND("/",D2,,FIND("/",D2,)+1)-FIND("/",D2,)-1) ■>の後ろ =RIGHT(D2,,LEN(D2,)-FIND("/",D2,,FIND("/",D2,)+1)) D5やD6のような例外があることが分かりました。 ABC列のように、>が無い場合はカテゴリ1にするようにしたいのですが どのようにしたらよいでしょうか。

  • 文字列を取り出す

    A列に[ No.××× ] あああああ・・・と入力されています。 毎回入力される行数が違います(100~300行) B列にNo.×××という文字列だけ取り出すために下記の関数が入っているのですが A列に入力のあった分だけをマクロで処理できませんか。 =LEFT(RIGHT(A2,LEN(A2)-FIND("[ No",A2,1)),8) 現在は300行目までこの関数が入った状態で、エクセルが重い気がします。

  • (excel)特定の文字列間の数値のsumを出したい

    初心者のため表記が分かりにくいところあるかと存じます。どうかご了承下さい。 以下のようなテーブルがあります。 __|_ _ __A_ _ _ |_ _B_ _|_C_ 1 | c43t0d0|1540 | 2 | c43t12d|1  | 3 | c45t0d0|1540 | 4 | c45t12d|6  | 5 | c49t0d0|209   | 6 | c48t0d0|224  | 7 |tty    |   |3520←★B1-B6の合計 8 | c43t0d0|127   | 9 | c43t0d7|127  | 10| c43t12d|6   | 11| c45t1d1|127   | 12| c49t0d0|253   | 13| c48t0d0|253   | 14|tty    |   |893←★B8-B13の合計 15| c43t0d0|16   | 16| c43t12d|1   | 17| c45t0d0|16   | 18| c45t12d|6   | 19|tty    |    |39←★B15-B18の合計 ~~~~~~~~~~~~~~~~~~~~~~~~~ <条件> 列Aには不規則にttyという文字列が出現します。 列Aにはtty以外に、cで始まる不規則な文字列cXXXXXXが出現します。 ただし文字列cXXXXXXにttyという文字列が含まれることはありません。 文字列cXXXXXXの列Bには、ランダムな数字が出現します。 列Aがttyの場合、列Bは空欄です。 今回実行したいのは、ttyとttyの間の列Bの合計を、列Cに出力することです。 イメージでは上図のC列のようになります。 行数が少なければ全て手動で行うのですが、表が6万行近くあるため、どうにか自動的に処理したいと思っています。 マクロも数式も不慣れなので四苦八苦中です。 識者の皆様、どうかアドバイス賜りますようお願い申し上げます。

  • VBA - 区切り文字前後で抜き出す

    Excel(VBA)で  区切り文字の前後で抜き出す(フォーマット統一) A列に  時間(00:00又は00:00:00)と文字列の組み合わせが複数あります。 順番が以下の2パターン 時間 文字列 文字列 時間 時間は、半角のカッコ"()"で括られている場合もあります。 両者は、半角スペース(1個又は数個) 又はそれ以外の区切り文字列(-,|)で区切られています。 (半角スペースと区切り文字の組み合わせも有り) これらの統一されていないフォーマットを一つのフォーマットに統一したいと思います。  統一フォーマット形式は   区切り文字として半角スペース(1個)で、下記を想定    hh:mm:ss mojiretu (hh:mm:ssは、例えば 00:05:15) B列に変換されたフォーマットを書き出す ------------------------------------------------------ 元ターゲットは以下のフォーマットが想定されます。 0:00 second hand news 00:00 00 - It's Not All Truth #1. 00:00 - Heldom - Hávamál 00:00 - Drifts 00:00:00 Dream of Arrakis (00:00) Kontora 01. Sun Killer 00:00 1. A World Away | 0:00 1. Imperial - 00:00:00 Silent universe 00:00 01. The Tower [Theme from "The Work"] (00:00) Dotugo - (00:00:00) StarBath Jam 1 00:00 Burning 00:00 参考画像 https://imgur.com/CcO1moz ---------------------------------------------- 以下で区切り文字(@)の前後で文字列をそれぞれ書き出せますが  私のやりたいことは複雑なのでどのようにコードを変換したら良いでしょうか ? DimmyStrAsString DimfindStrAsString DimfindNoAsInteger myStr=Range("A1") findStr="@" findNo=InStr(myStr,findStr) Range("B1")=Left(myStr,findNo-1) '@より前の文字列' Range("D1")=Right(myStr,Len(myStr)-findNo) '@より後の文字列'

  • エクセルの文字列・数値【長文です】

    昨日、LEFT関数の使い方を教えていただきましたが、これですとLEFT関数を用いたところが【文字列】として認識されました。【数値】として認識させる方法を教えてください。 初心者で申し訳ございません。 昨日の質問・いただいた回答は以下の通りでした。 ≪質問≫ [123456/あいうえお/abc][234567/かきくけこ/efg]のようなデータがいくつかあって(例えばA列に)、B列に[123456][234567]、C列に[あいうえお][かきくけこ]、D列に[abc][efg]と表記できるような【関数】を教えてください。 ≪いただいた回答≫ A1にデータがあったとして。 B列 =LEFT(A1,SEARCH("/",A1,1)-1) C列 =LEFT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),1)-1) D列 =RIGHT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),LEN(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)))-SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1))))

  • Left関数とRight関数を合わせたような

    こんにちは いつもお世話になっています。 A列に文字列があります。 文字の長さは不定ですが、左から3文字、右から4文字は共通して不要なので削除したいです。right,leftの両関数を合わせたような関数を教えてください。 二列で分けて処理するのではなく一回の関数で処理希望です。 =LEFT(A2,LEN(A2)-4)&RIGHT(A2,LEN(A2)-3) こんなので失敗しています。 よろしくお願いします エクセル2007

  • 指定した記号の前半と後半を取り出したい

    現在使っている関数で下記のものがあります。 セルA2に対象の文字列があるとして、■を基準に分けています。 =LEFT(A2,FIND("■",A2)-1) =MID(A2,FIND("■",A2)+1,LEN(A2)-FIND("■",A2)) 今回、これを元に編集したいのは 対象文字列に■が2個以上ある場合、最後の■を基準に分けたいのですが どのように指定すればいいのか色々調べているのですが、分からず困っています。 【例】A2セルに 田中■けんじ■30歳■アメリカ 現状だと =LEFT(A2,FIND("■",A2)-1)  で 「田中」 =MID(A2,FIND("■",A2)+1,LEN(A2)-FIND("■",A2))  で 「けんじ■30歳■アメリカ」 となりますが、今回は 「田中■けんじ■30歳」 「アメリカ」 と、最後の■の前後を抽出したいです。 参考情報として、対象文字で■は1個のものから最大10個位あるものまで存在します。 よろしくお願い致します。

  • 行列の入れ替え

    次の処理を行うプログラムを書きたいのですが教えていただけないでしょうか? (処理) B列のあるセルの値が2000または2001の場合、当該行のc列からn列までのセルをコピーし、11行を挿入し、行列を入れ替えて貼り付ける。 この処理を繰り返したいです。             (処理前) A  B  C  D  E  F  G   H  I  J  L  M  N  O 1 2000  1  2  3  4  5  6  7  8  9  10  11  12 2 3 4 5 6 7 8 9 10 11 (処理後) A  B  C  D  E  F  G  H  I  J  L  M  N  O 1  2000  1 2      2 3      3 4      4 5      5 6      6 7      7 8      8 9      9 10     10 11     11 12     12 13     13 よろしくお願いします。

  • excelでの計算をaccessで実現可能か?

    excelでの計算をaccessで実現可能か? 文字列の中にスペースと+の記号があった場合、スペースを削除し、+までの文字列を抽出ということをexcelの計算式で実施しています。 例: B4のセルに ABCD+0001 という文字列があった場合、下記の計算式により、 =IF(LEN(B4)>13,LEFT(TRIM(B4),LEN(TRIM(B4))-FIND("+",TRIM(B4))-1),B4) ABCDという文字列を抽出できます。 この計算式をaccessで実現可能でしょうか? フィールド1に元の文字列、フィールド2に抽出結果を算出したいのです。

  • javascriptで同文字の出現回数を調べるには

    javascriptで入力チェック時に以下の条件を満たすようにしたいのですが、 簡単にできる方法はないでしょうか。 条件 ・文字列内に同じ文字が指定回数以上出現していたらアラートを出したい。 例)「1a1b1a1c」という文字列があったとすると、「1」の出現回数は4。 「a」の出現回数は2。「b」「c」の出現回数は1。 といったように、連続しているとは限らないある特定の文字が 何回出現しているかを知るにはどうしたら良いでしょうか。 正規表現で試みたのですが、どうにもできず困っております。