教えてください。Excelで、文字数の決まっていない文字列を抽出したいのですが、例えば、

セルA1 : プロジェクト1 簡単な文章 2352 PD_JOK
セルA2 : プロジェクト13 複雑な文章列とは決まっていない 2453 AO_JKI
・・・・・・
というセルから、
プロジェクト名から、半角数字前までの文字数が決まっていない文字列「簡単な文章」や「複雑な文章~」をセルB列に抽出する方法を教えていただきたいのですが、
そして、半角数字後の半角英字「PD_JOK」をセルC列に抽出する方法も同時に教えてください。
万単位でデータがあるので、関数を使わないと難しいです。
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

こんにちは。



スペースのない場合を想定しました。
以下は、汎用性がありますので、他にも使用できます。
'-----------------------------------------------------------
Function ReReplace(myStr As String, strPattern As String)
'myStr 元の文字, strPattern 正規表現パターン
 Dim Matches As Object
 Dim Match As Object
  With CreateObject("VBScript.RegExp")
    .Pattern = strPattern
    .Global = False
  If .Test(myStr) Then
    Set Matches = .Execute(myStr)
    Set Match = Matches(0)
    If Match.SubMatches.Count > 0 Then
     ReReplace = Trim$(Match.SubMatches(0))
    Else
     ReReplace = Trim$(Match.Value)
    End If
    Set Match = Nothing
    Set Matches = Nothing
  End If
  End With
End Function

'--------------------------------------------------------
Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。
次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以上のコードを貼り付けて、Alt + Q で、画面を閉じます。


ワークシートに戻ったら、

「プロジェクト1 簡単な文章 2352 PD_JOK」
(スペースがあるなしは関係がありません)

抜き出し; 簡単な文章

=REREPLACE(A1,"\d([^\d]+)")

抜き出し; PD_JOK

=REREPLACE(A1,"\d{4}([^\d]+)$")

\d は、数字のこと
[^\d] は、非数字

なお、万単位ある場合は、コピーして、値貼り付けで、定数化して、数式は取り除いたほうが、ワークシートは軽くなります。
    • good
    • 0
この回答へのお礼

助かりました。ありがとうございました。遅くなってすいませんでした。

お礼日時:2006/08/29 08:01

データ-区切り位置でスペースを区切り文字としてバラしてからお好きなように処理すればよろしいのでは?

    • good
    • 0
この回答へのお礼

助かりました。ありがとうございました。遅くなってすいませんでした。

お礼日時:2006/08/29 08:01

区切り位置がスペース、半角英字が6桁として、異化の方法は如何でしょうか。


B1に=MID(A1,1,FIND(" ",A1,FIND(" ",A2,1)+1)-1)
C1に=RIGHT(A1,6)
    • good
    • 0
この回答へのお礼

助かりました。ありがとうございました。遅くなってすいませんでした。

お礼日時:2006/08/29 08:02

C1: =MID(A7,FIND("!",SUBSTITUTE(A7," ","

!",3))+1,99)
    • good
    • 0
この回答へのお礼

助かりました。ありがとうございました。遅くなってすいませんでした。

お礼日時:2006/08/29 08:02

最後の文字列が6桁で統一なら


C1=RIGHT(A1,6)
桁数が固定でなく、区切り位置が半角スペースの4番目の文字列なら
C1=RIGHT(A1,LEN(A1)-FIND("!",SUBSTITUTE(A1," ","!",3)))
    • good
    • 0
この回答へのお礼

助かりました。ありがとうございました。遅くなってすいませんでした。

お礼日時:2006/08/29 08:03

プロジェクト1_簡単な文章_2352_PD_JOK



↑で『_』で示した所は、半角スペースですか?もし、半角スペースと決まっているなら、

セルB1: =LEFT($A1,FIND("_",$A1,FIND("_",$A1)+1)-1)    (←『_』は半角スペース。ご質問の『_』が全角スペースなら全角スペースに置き換えてください。)

セルC1: =RIGHT($A1,LEN($A1)-FIND("_",$A1,FIND("_",$A1,FIND("_",$A1)+1)+1))    (同上)

『find("文字列",A1,文字数)』は、セルA1の左端から数えた『文字数』で示された文字位置から『文字列』を探して、見つかると、その『文字列』の左端から数えた文字数を返します。(文字数が1のときは省略可)
    • good
    • 0
この回答へのお礼

助かりました。ありがとうございました。遅くなってすいませんでした。

お礼日時:2006/08/29 08:03

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q文字・画像をデザインする

最近。パワーポイントの資格を取得したのですが、その時に文字、画像のデザイン?アニメーションなどをし、プレゼンを実習としてしました。文字のレイアウトや画像に手を加える事の楽しさを実感し仕事として文字のデザインなどをしている業界、会社は何か知りたいのですが。
その際にこのソフトは使えるようにしておいた方がいいものなど、あとDTPとWebデザインの区別を知りたいです。
なにぶん基礎知識が不足しているのでお願いいたします。

Aベストアンサー

あなたが日頃見ている駅貼りのポスターやコンビニにある雑誌、通りで配られるチラシ等、それらをデザインしている職種と会社があります。職種としてはグラフィックデザイナー、作っている会社は広告代理店(電通や博報堂が有名)やデザイン専門事務所などです。

文字そのものを作っているのはこれらとはまた別に専門会社があり、モリサワ等が有名で、文字をデザインする人はタイプデザイナーと呼ばれます。タイポグラファは文字を「組む」専門の人で、文字そのもののデザインはしません。例えるならピアノ職人とピアニストの関係ですね。両方を一流にこなせる人は稀です。

DTP(Desk Top Publishing)はグラフィックデザインの完成形をコンピュータ上で作り上げる行為を指し、デザインそのものとはあまり関係ないものです。Webデザインはグラフィックデザインの要素に加えて、インターフェイスデザイン(人間が操作する部分のデザイン。銀行のATM等)の要素も絡んでくる複雑な分野です。

デザイン業務に使われるソフトはAdobe社やMacromedia社等の製品全般です。しかし上述したように、これらのソフトが使えるのと、デザインができるということはまったくの別物と考えて下さい。ソフトは使えるけどデザインはできない人、逆にデザインはできるけどソフトは使えない人、というのは実際におります。

あなたが日頃見ている駅貼りのポスターやコンビニにある雑誌、通りで配られるチラシ等、それらをデザインしている職種と会社があります。職種としてはグラフィックデザイナー、作っている会社は広告代理店(電通や博報堂が有名)やデザイン専門事務所などです。

文字そのものを作っているのはこれらとはまた別に専門会社があり、モリサワ等が有名で、文字をデザインする人はタイプデザイナーと呼ばれます。タイポグラファは文字を「組む」専門の人で、文字そのもののデザインはしません。例えるならピアノ職人...続きを読む

Q文字数が決まっていないの文字列を自動に取得して別の文字列に変換

取得して切り出す文字列の長さが固定で無い場合には、どのようにしら良いのでしょうか?

例:
ある適当な文字列を分割
 ETUROGO → E T U R O G O
       の様に一文字ずつ分割
 各文字を他の文字列に変換
 E→ 2 や T → 電話 のように全文字を
 他の文字に変換

 この文字列の長さが固定ならば範囲をして変換
 する事が出来るのですが、
 取得文字列(この場合は、ETUROGO)の長さが
 3文字~20文字程度で決まっていない場合
 どのようにしたら自動で変換されるのでしょうか?

 LEN関数で文字数を取得
 LEFT関数やMID関数等で文字列を切り出す。
 という事までは考えたのですが。
 文字数が変化してしまうとやり方が分かりません。

 また、上記の場合は英文字なのですが同様に
 文字列の長さが固定ではなく(4文字~20文字の間)
 ”東京携帯配備” を ”東京” ”携帯” ”配備”
 のように単語で分割し同様に他の文字列に変換
 するという場合は、少し異なるのだと思うのですが
 INDEX関数等を使えば良いのかな?
 とも思うのですが過去の例を見ても理解出来ません。
 
 どうかお教え願います。宜しくお願い致します。

取得して切り出す文字列の長さが固定で無い場合には、どのようにしら良いのでしょうか?

例:
ある適当な文字列を分割
 ETUROGO → E T U R O G O
       の様に一文字ずつ分割
 各文字を他の文字列に変換
 E→ 2 や T → 電話 のように全文字を
 他の文字に変換

 この文字列の長さが固定ならば範囲をして変換
 する事が出来るのですが、
 取得文字列(この場合は、ETUROGO)の長さが
 3文字~20文字程度で決まっていない場合
 どのようにしたら自動で変...続きを読む

Aベストアンサー

これは何の質問ですか。エクセル?
また用いる手段は
(1)関数の範囲で解け?
(2)VBAを使っても良い?
(A)ある適当な文字列を分割
関数式で
A1に文字列ありとする。
B1に=MID($A1,COLUMN(B1)-1,1)といれ
B1を最大文字数の列まで10文字でK列まで複写。
B1からK1までに1文字ずつ入ります。
$が大事です。
(B)E→ 2 や T → 電話 のように全文字を
 他の文字に変換
VLOOKUP関数を使うことによって、単語数が表を作れるほどの簡単なものなら、表さえ出来れば、可能かと思います。
(C)単語で分割し同様に他の文字列に変換
 するという場合
「単語」の判別(切りだし)が、単語辞書を使わないと出来ないので、VBA程度出きる人も、その点のプロでないと出来ないでしょう。増して関数では出来ないでしょう。
APIそのた単語辞書等の仕組みを、深く勉強しないといけないのではと思いますから
こう言うのは、「無理」と言うのでしょう。
フリーソフトなどないか、セミプロの作ったソフトがないか探しましょう。

これは何の質問ですか。エクセル?
また用いる手段は
(1)関数の範囲で解け?
(2)VBAを使っても良い?
(A)ある適当な文字列を分割
関数式で
A1に文字列ありとする。
B1に=MID($A1,COLUMN(B1)-1,1)といれ
B1を最大文字数の列まで10文字でK列まで複写。
B1からK1までに1文字ずつ入ります。
$が大事です。
(B)E→ 2 や T → 電話 のように全文字を
 他の文字に変換
VLOOKUP関数を使うことによって、単語数が表を作れるほどの簡単なものなら、表さえ出来れば、可能かと思います。
...続きを読む

Qロゴデザインの文字間について

WEBデザインを勉強しています。

今タイトルロゴ(アルファベット7文字程度)をデザインしているのですが、
文字間に微妙なバラつきがあるため
一文字一文字の文字間を調整しようと思うのですが、
法則やポイントなどはあるのでしょうか?
特に「I」の前後が難しいです。。。


使用ソフトはIllustratorCS5です。
よろしくお願いします。

Aベストアンサー

Iの前後が難しいというご相談ですが、おそらく、そのIの隣の文字の、その前後にも文字があるのではないですか?その文字の間隔に法則性が無いために、Iの前後の間隔が決められないのだと推測されます。

文字を等間隔に配置した場合、見た目の間隔にバラツキを感じるのは目の錯覚と、欧文のタイプフェイスのデザインによるものです。横書きを前提とした欧文の文字は高さは一定なのですが、文字ごとの横幅が違います。そのため、ロゴタイプをデザインする場合には、この錯覚と横幅を考慮に入れて文字を配置します。

具体的に説明していきましょう。まず、その文字をコピー&ペーストしてアウトラインを作成しましょう。アウトラインにした文字は1文字づつ自由に動かす事ができます。移動はキーボードで操作します。あらかじめ、環境設定の「キー入力」で、移動の大きさを適度な大きさにしておきましょう。

縦のラインで構成されているIやH同士が隣り合う場合と、IやHと曲線で構成されているOやCが隣り合う場合では、見た目の間隔と実際の間隔は違ってきます。これは既に経験されている事でしょう。

これらの異なったラインの文字の配置を見た目の上での間隔を同じにするためには、まず基準となる間隔を設定することが先決となります。基準となるのは、IやHなど縦のラインが隣り合う文字の間隔です。

これを基準として、IとOのように縦のラインと曲線が隣り合う組み合わせの間隔、IとYのように縦ラインと斜線が隣り合う間隔、OとCなどのように曲線同士が隣り合う間隔、YやWのように斜線同士が隣り合う間隔、CやZなどの懐のある文字の間隔を決定していきます。

例えば、縦ライン同士の間隔を1とした場合、縦と曲線の組み合わせを0.8、曲線同士の組み合わせを0.7、というように独自の法則を決定してください。この時の法則が、あなたのそのデザインの個性になります。そのデザインを活かすも殺すも、その法則次第となります。

間隔の関係は、概ね、直線同士>直線と曲線>直線と斜線>曲線同士≧斜線同士>斜線と曲線、のようになります。この関係は、それぞれのタイプフェスによっても変わりますから、それぞれのタイプフェイスのデザインに合わせる事が不可欠です。これらの間隔を決定せずに、終始感覚だけで配置していると、いつまで経っても文字同士のバランスがとれず、ガタガタした感じから逃れられなくなります。

さらに、YとY、YとWなどのように、隣り合う文字の懐が大きく影響する場合もあります。このような場合には、敢えて字間を大きくとったデザインにして懐の影響を小さくしたり、文字同士の一部を重ねたりして処理します。このような処理は、デザインの方向性に大きく作用しますから、何度も試行することが必要になります。

とりあえず、以上の手順で配置してみてください。隣り合う縦のライン同士の部分が無い場合には、そのIと隣の文字との間隔を基準にしてください。そして、そこから他の部分の間隔を決めていってください。決定した間隔の文字同士は順次グループ化していって、後々までズレが発生しないようにしましょう。

最後に、全ての文字を配置し終えたら、全体のバランスを見ましょう。意図したイメージになっていますか?意図と違って詰まっていると感じたり、スカスカしていると感じたら、再度基準の間隔を調整して、それにつれて他の文字の間隔も調整しましょう。

ある程度煮詰まってきた時に、どうしても違和感を感じる部分が出てくる事もありますが、そのような場合には、思い切って大胆に基準の間隔を変えてみたり、ある程度時間を置いてから再度試みることも効果的です。同じ動作を繰り返していると、どうしても感覚は麻痺してくるものですから。

そして、最後の最後に文字同士のグループ化を解除し、見た目だけでそれぞれの間隔を微調整します。少しづつ、少しづつ、根気のいる作業です。ここで手を抜くと良いロゴデザインはできません。

ロゴデザインは長期間に渡って人目に晒されるものです。見た人が少しでも違和感を感じると、その少しの違和感が時間の経過とともに大きな蓄積となっていきます。その蓄積された違和感は、そのロゴタイプを持つ企業やブランドのイメージに直結しますから、とても大きな問題なのです。ですから、精緻化はあせらず時間をかけて、納得のいくまで確実に行ってください。

追伸:以上はあくまでも既存のタイプフェイスを利用した場合のデザイン手法です。あなたが文字からデザインなさっている場合には、その文字の仕上がり具合が大きく影響します。良いデザインが出来上がる事を祈っています。

Iの前後が難しいというご相談ですが、おそらく、そのIの隣の文字の、その前後にも文字があるのではないですか?その文字の間隔に法則性が無いために、Iの前後の間隔が決められないのだと推測されます。

文字を等間隔に配置した場合、見た目の間隔にバラツキを感じるのは目の錯覚と、欧文のタイプフェイスのデザインによるものです。横書きを前提とした欧文の文字は高さは一定なのですが、文字ごとの横幅が違います。そのため、ロゴタイプをデザインする場合には、この錯覚と横幅を考慮に入れて文字を配置しま...続きを読む

QEXCELで不規則な文字数を一定の文字数に設定する方法を教えてください。

123または1234など定まらない6字以内の文字数を一括で6文字にする方法をお教え下さい。宜しくお願い致します。

Aベストアンサー

6文字にして数字の左に0を埋めるのであれば
セルの表示形式でユーザー設定を選択し、種類に「000000」といれれば、前部6桁でゼロプレスされます。

Qふすま替えをして習字で文字を書く場合のデザイン

ふすま替えをしようと思います
習字の上手な母に記念に文字を書いてもらおうと考えました。
そこでデザインなのですが
太い文字は狭い部屋なので(6畳和室)
細筆で書いたかな文字の文章が良いかとは考えておりますが
どんなふすまに書いてもらったらよいでしょうか?
無地か何かオススメのふすまがあれば
また
かな文字でなくてもいいのですが
狭い部屋に合った
文字、ふすま、ふすまのデザインがあれば
教えてください。

Aベストアンサー

書いてもらうなら、無地の襖に直接書いてもらう方法と
書いた紙を襖に張ってもらう方法とあります。

よほど自信のある人を除いて後者の方が無難だと思います。
太字の漢字だと禅寺みたいになって重いと思われるなら
好きな現代詩などを自由に近代詩文のようにカナ漢字交じりで
書いてもらってはどうでしょうか?

自分は大きな紙に好きな言葉を書いて襖に張ったりしましたが
もっときちんと襖やさんにお願いすればしっかりしたものができると思います。

QExcel(エクセル)での特定文字以降の文字列抽出

Excelでの
特定文字以降の文字列抽出&条件による振り分け
を自動的にする事は可能でしょうか?
例えば図のように

セルA2に1200×15
セルA3に2300×3 と入力されている時

C2に15
B3に3 と表示したいです。

できれば、
後で合計を出したいので数字として扱いたいです。

よろしくお願いいたします。

Aベストアンサー

◆これでいいですね
B2=IF(COUNTIF($A2,B$1&"×*"),SUBSTITUTE($A2,B$1&"×",)*1,"")

Q静岡県の静岡ナンバーの文字のデザインが知りたいのですが。デザインをしな

静岡県の静岡ナンバーの文字のデザインが知りたいのですが。デザインをしなければならないので正確な写真が見たいのでよろしくおねがいいたします。

Aベストアンサー

http://www.google.com/images?num=50&lr=lang_ja&q=%E9%9D%99%E5%B2%A1%E3%83%8A%E3%83%B3%E3%83%90%E3%83%BC&um=1&ie=UTF-8&source=og&sa=N&hl=en&tab=wi

QEXCEL関数 特定の文字列間の文字の抽出について

こんにちは。
Excelでセルの中の、特定の文字列と文字列の間にある文字列を抜き出せる関数がありましたら教えてください!

例:A1セルに、
「~
 error_message: エラーが発生しました。
 detailed_description: ~
 ~」
と記載されています。
「error_message: 」と「detailed_description:」の間にある文字(この場合「エラーが発生しました。」)を抽出したいです。
※間にある文字の内容、文字数は一定ではないです。

なかなかうまく行かず、苦労しています。。。
ご教示ください。よろしくお願いいたします。

Aベストアンサー

データがA1にあるとして下記

=MID(A1,FIND("error_message:",A1)+14,FIND("detailed_description:",A1)-FIND("error_message:",A1)-14)

Q文字だけでPOPを作る事が難しいです。上手くデザインするコツを教えて下さい。。

写真等の素材がなくほぼ文字だけでPOPを作ろうとしています。文字のバランス、背景やワンポイントのデザインに悩んでいます。私の場合パチンコ店のPOPを任されているのですが、パソコンが得意だからという理由だけなんです。(センスはゼロに近い・・・)A3横の用紙にただ「明日、大安」「明日、GOGO、大安」ほぼこれだけの文字で上手くレイアウトしデザインしなければいけないんです。お店に貼るのだからいい加減には出来ないし。。。。うちのお店はシンプル&クールで、他のお店とは一線を画している感じです。何かいいサイトやアイディアがあったら教えていただけませんか?よろしくお願いします。ちなみにイラストレーターではなくコーレルドローというソフトを使ってつくっています。素材が少ないと難しいですね~。くどいようですがテーマは「シンプル&クール」です。

Aベストアンサー

田中一光をご存じですか?
うまく作るコツ、などではないのですが、文字だけでデザインと聞いて思い起こしたのがこの人です。
なかなかちょうどいいサイトが見つからなかったのですが、田中一光の作品は参考になると思います。

QEXCEL関数 特定の文字列以降の文字の抽出について

こんにちは。
以前にも似たような質問をしたのですが、
Excelでセルの中の、特定の文字列以降の文字列を全て抜き出せる関数がありましたら教えてください!

例:A1セルに、
「~
 detailed_description: ~
 ~」
と記載されています。
「detailed_description:」以降の文字(「detailed_description:」は含まない)を抽出したいです。
※(「detailed_description:」以降の文字数は一定ではないです。

今回もなかなかうまく行かず、苦労しています。。。
ご教示ください。よろしくお願いいたします。

Aベストアンサー

No.1です。もし文字列が2種類しかないのでしたら、少し長いですが下の式でどうでしょう。

=IF(ISERR(FIND("feedback:",A1)),RIGHT(A1,LEN(A1)-FIND("detailed_description:",A1)+1-LEN("detailed_description:")),RIGHT(A1,LEN(A1)-FIND("feedback:",A1)+1-LEN("feedback:")))


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

人気Q&Aランキング