• ベストアンサー

|で区切っている文字列のある部分を取り出したい

Excel2007を使用しています。 自分でもやってみましたが、どうしてもわからなく困っています。 どなたかご教授ください。 A1に |11111|22222|33|45|6 4444|433333|44444|gggggg|abc| A2に |1111|22222|33|45|6 444|433d333|44444|gggg|ac| ・ ・ ・ があり、 A1の 433333 の部分のみ取り出したい時、どんな数式を入れたらいいでしょうか? 433333 の部分は行によって異なります。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 なんだか、質問が揺れ動いているようですから、回答としては難しいような気がします。 金額をデータが探す、例えば、[10,000] というような数字を探すというのは、困難です。理由は、必ずしも、カンマ付きではないからです。カンマ付きなら、また、探す方法があります。 最初の質問に対しては、 ------------------------------------------- A1:|11111|22222|33|45|6 4444|433333|44444|gggggg|abc| =SUBSTITUTE(MID(A1,FIND("^",SUBSTITUTE(A1,"|","^",6))+1,256),MID(A1,FIND("^",SUBSTITUTE(A1,"|","^",7)),256),"") ------------------------------------------- B列は [C列]番目の"|"から、[D列]番目の"|"の間にある文字列を取り出す数式。 A1:|111111|222222|10,000|111111|222222| =SUBSTITUTE(MID(A1,FIND("^",SUBSTITUTE(A1,"|","^",3))+1,256),MID(A1,FIND("^",SUBSTITUTE(A1,"|","^",4)),256),"") ------------------------------------------- 違いは、最初は、6番目と7番目で、その次は、3番目と4番目、つまりSUBSTITUTE(A1,"|","^",3))が、前方、SUBSTITUTE(A1,"|","^",4) の数式で、後方の「|」を探しています。

kawamae1023
質問者

補足

参考になりました。 ありがとうございました!

その他の回答 (5)

回答No.5

>例の中でいうと金額にあたる部分をB1,B2,B3,B4,B5,B6・・に数式(関数)を入れて、表示させたいのです 「金額にあたる部分」とはどこですか? 金額の出現場所は決まっているのですか?たとえば、3番目と6番目とか。 どうやってあなたは「金額にあたる部分」とそうでない部分を見分けているのですか? 以上が判らないと、具体的な回答ができません。

kawamae1023
質問者

補足

金額にあたる部分とは、 上の補足でいうとA1だと「1 10,000」A2だと「5 15,000」 A3だと「12 17,000」・・ 出現場所は決まってないです。 "|"を数えて何番目から何番目の間の文字列を取り出す感じです。   |  A  |  B  |  C  |  D  | ------------------------------- 1 |     |     |     |     | ------------------------------- 2 |     |     |     |     | ------------------------------- 3 |     |     |     |     | ------------------------------- 4 |     |     |     |     | ------------------------------- 5 |     |     |     |     | ------------------------------- A列は"|"で区切った文字列 B列は [C列]番目の"|"から、[D列]番目の"|"の間にある文字列を取り出す数式。 C列は"|"の何番目から 数字を入れていきます。 D列は"|"の何番目まで 数字を入れていきます。 A1:|11111|22222|1 10,000|1111|2222| A1でいうと [C1]:3 [D1]:4 を入力して取り出す結果は [B1]:1 10,000 になります。 "|"を数えて3番目の"|"と4番目の"|"の間の文字列をB1に表示する。 よろしくお願いします。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

補足をお願いします。 >A1の 433333 の部分のみ取り出したい ⇒区切られた6番目? 又は「433333」の固定値を抽出するのでしょうか。 >433333 の部分は行によって異なる ⇒桁数が異なるという事でしょうか。

kawamae1023
質問者

補足

わかりにくく、すみません<_o_> 433333の部分は固定値ではなくA2,A3,A4,A5,A6・・それぞれ違う文字数の文字列が入っています。 "|"の数もA1,A2,A3,A4,A5,A6・・・によって数が違います。 例 ) A1:|11111|22222|1 10,000|1111|2222| A2:|111111|22222|5 15,000|1111|2222|3333| A3:|1111|2222|12 17,000|111111|2222|3333|191,000| A4:|11111|22222|333333|20,000|1111|2222| A5:|111111|22222|333333|4 30,000|1111|2222|33333|40,000| A6:|1111|222222|333333|50,000|11111|222|15 60,000| 例の中でいうと金額にあたる部分をB1,B2,B3,B4,B5,B6・・に数式(関数)を入れて、表示させたいのです。 よろしくお願いします。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.3

データー、区切り位置、カンマやタブ...で、 「その他」にチェックを入れ右の窓に「|」を入れて、 次へ、完了 で、どうでしょう

kawamae1023
質問者

補足

いろいろ、言葉足らずですみません。 B1に数式を入れて表示したい。のです。 よろしくお願いします。

回答No.2

「データ」-「区切り位置」はやってみましかたか? もしやってみても望みどおりでないなら、「区切り位置」ではどこが不足なのかにつついての情報を具体的にお願いします。

kawamae1023
質問者

補足

いろいろ、言葉足らずですみません。 B1に数式を入れて表示したい。のです。 よろしくお願いします。

  • rurumiko
  • ベストアンサー率31% (32/102)
回答No.1

>取り出したい の意味がいまいちつかみにくいのですが、文字列から消去したいという意味でしたら、 置換 でできませんか? メニューバーの編集→置換を選択して、置換する文字列に |433333 を記入して、置換後の文字列は空欄のまま。OK。 元の文字列がそのまま必要な場合は別の列にコピーしてから実行してください。 ご参考になれば幸いです

kawamae1023
質問者

補足

いろいろ、言葉足らずですみません。 取り出したい=B1に数式を入れて表示したい。 です。433333の部分はA2,A3,A4,A5それぞれ違う文字列が入っています。 "|"の数もA1,A2,A3,A4,A5・・・によって数が違います。 よろしくお願いします。 A1:|111111|222222|10,000|111111|222222| A2:|111111|222222|15,000|111111|222222|333333| A3:|111111|222222|17,000|111111|222222|333333|19,000| A4:|111111|222222|333333|20,000|111111|222222| A5:|111111|222222|333333|30,000|111111|222222|333333|40,000| A6:|111111|222222|333333|50,000|111111|222222|60,000| のような感じです。 よろしくお願いします。

関連するQ&A