• ベストアンサー

エクセルシートの文字列加工について

エクセルのシートのA列に"全角ひらがな漢字"の文字列と"半角英数"の文字列を含むセルが縦に並んでいます。約200行。 ■この中から、"全角ひらがな漢字"の文字列を右となりのB列に、"半角英数"の文字列をさらに右となりのC列に、それぞれコピーしたいのですが、関数・マクロなどでいい方法がありましたら教えて下さい。 ■それから、半角英数文字列のC列から、""で囲まれた文字列のみをさらにD列にコピーしたいのです。 文字列の長さが統一されていれば、比較的簡単なのですが、今回は文字列の長さが不規則です。よろしくお願いします。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

ANo.4のmaronです、D1も考えてみました D1=LEFT(REPLACE(A1,1,FIND("""",A1),),FIND("""",REPLACE(A1,1,FIND("""",A1),))-1)

その他の回答 (5)

回答No.6

>最後の半角英数文字列▲▲▲▲がくっついてきます。 全角文字の先頭が切れていないとすると、文字数が正しく取得できていないようですね。 =LENB(A1)-LEN(A1) の結果は全角文字数と一致していますか?末尾に全角スペースとかありませんよね? >maronさん なるほど、CODEを使うとスマートですね。COLUMNなら数も妥当ですし。勉強になります。

fish_apple
質問者

補足

皆さんありがとうございました。 助かりました。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.4

B1=MID(A1,MATCH(1,INDEX(1/(CODE(MID(A1,COLUMN(1:1),1))>122),),0),LENB(A1)-LEN(A1)) C1,D1の式は、すでに回答されていますので、省略します

回答No.3

全角文字は分割されないのですよね? 100文字以内の場合。ちょっと自信ないですが…。 =MID($A1,MATCH(0,INDEX((MIDB($A1,ROW($A$1:$A$100),1)=MID($A1,ROW($A$1:$A$100),1))*1,),FALSE),LENB($A1)-LEN($A1)) D列はNo.1さんの方が書いておられますので割愛します。

fish_apple
質問者

補足

ありがとうございます。 ▲▲▲▲▲"△△△△△"▲▲■■■■▲▲▲▲ 試してみました。 最後の半角英数文字列▲▲▲▲がくっついてきます。 ■■■■▲▲▲▲と表示されます。 すみません。 ここまで複雑になると、私の頭では修正不能です・・・。

回答No.2

一つのセルに両方含まれているのでしょうか? B1:=IF(LEFTB(A1,1)=LEFT(A1,1),RIGHT(A1,LENB(A1)-LEN(A1)),LEFT(A1,LENB(A1)-LEN(A1))) C1:=SUBSTITUTE(A1,B1,"")

fish_apple
質問者

補足

すみません。言葉足らずだったようです。 具体的には、 半角英数:▲△ 全角ひらがな漢字:■ として、 ▲▲▲▲▲"△△△△△"▲▲■■■■▲▲▲▲ という文字列で、 B列に、■■■■を C列に、▲▲▲▲▲"△△△△△"▲▲▲▲▲▲を D列に、△△△△△を 表示させたいのです。文字列の文字数はセルによって少々異なります。 よろしくお願いします。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

B2=IF(AND($A2<>"",LENB($A2)=LENB(JIS($A2))),$A2,"") C2==IF(AND($A2<>"",LENB($A2)<LENB(JIS($A2))),$A2,"") D2=IF(ISERROR(FIND(CHAR(34),$C2)),"",MID($C2,FIND(CHAR(34),$C2)+1,FIND(CHAR(34),SUBSTITUTE($C2,CHAR(34),"'",1))-FIND(CHAR(34),$C2)-1))

関連するQ&A

  • EXCEL 文字列操作

    教えてください。 たとえば、エクセルのセルの  AAA555さくらサクラ という文字列から、英数字だけ抜き出す方法を教えてください。 文字列は可変(不規則な長さ)で、文字列中には英数の他にひらがな、 カタカナ、漢字があります。 例の結果として、AAA555を抜き出したいです。

  • エクセル:半角カナを全角に、半角英数はそのままに。

    エクセル:半角カナを全角に、半角英数はそのままに。 ひらがな・漢字・半角カナ・半角英数が混じったセルが縦に沢山あります。 半角カナだけを全角にし、半角英数はそのままにしたいのですが、JISでは全て全角になってしまいます。 どなたか良い関数を教えてください。

  • エクセルのセルに入力文字の制限

    エクセルのセルに文字の制限をしたいのですが、例えばA1セルには半角英数、B1セルにはひらがな、C1セルには半角カタカナという感じでキーボートの半角/全角や英数キーを変更しなくても入力出来る方法がありましたら教えて下さい。宜しくお願いします。

  • エクセルでのマクロを使った特殊な文字分け

    エクセルのマクロを使った処理について、初心者の小生にご教授ください。 今A列に文字列(半角全角混在)が入力されています。 この文字列の左から20文字までを同行のB列のセルに、21文字から40文字までを同行のC列のセルに、残りを同行のD列のセルに分割してコピーするマクロを作りたいと思っています。 しかし、文字数のカウントの仕方が特殊で悩んでいます。 カウントのルールは 1.半角は1文字、全角は2文字としてカウントする。 2.全角の場合はその文字の前と後ろに半角の『"』を入力し、それ自体も1文字としてカウントする。 3.全角が2個以上連続する場合は、その塊の前と後に『"』を入れる。(例:文字列が『あい』だとしたら、『"あ""い"』ではなく『"あい"』なるため、8文字ではなく6文字とカウントする。) というルールです。 文字を分けるときに、分ける境目に文字が来てしまう場合(たとえば全角が20文字目と21文字目となる場合)は、右のセルに入力しなくてはいけません。 また、全角の前後にある『"』は全角とひとくくりとして考えるため、分けることはできません。(例:B列の最後が『あ』となって、C列の最初の文字が、その全角の後ろの『"』となることはできない。) というややこしいルールとなっています。 文字列を左から順に確認していき、パターンで条件分けする方法も考えたのですが、処理が膨大になってしまい、こんがらがってしまいました。 何かすっきりとした解決方法はないものでしょうか。 ややこしい条件で分かりにくくで申し訳ございませんが、お知恵をお借りしたいと思います。 よろしくお願いいたします。

  • Access97:漢字を除いて全角文字の入力を禁止するには

    使う文字 漢字、半角英数、半角カタカナ、半角括弧() 禁止文字 全角英数、全角カタカナ ひらがな どうやったら入力制限出来るでしょうか?

  • エクセルで列毎に自動で全角ひらがな⇔半角英数が切り替わる

    エクセルで列毎に自動で全角ひらがな⇔半角英数が切り替わる方法はないでしょうか? いつも作成している表があったとすると、 その表の列によって数字だったり、漢字だったり します。 No.  名前  県名  売上  管理CD 100  山田  長野県 1,125  A2568KN 列を移動するたびに切り替えるのが面倒なので どうすればいいですか? マクロを登録しても結局は半角キーを押す手間と 変わりません。 そのセルに移動すると、「自動で」 切り替わる方法が知りたいです。

  • エクセル 全角と半角混在で特定の文字以外削除

    こんにちは。 エクセルのマクロで質問があります。 色々と調べてはいるのですが、 該当するものがないので、質問させて頂きます。 【実行したいこと】 1.全角と半角混在しているのですが、全角英数と半角英数が入っているもの以外を行削除 2.F列の0以下を行削除 3.C列の特定の文字がある時にセルを塗りつぶす 添付させて頂いた画像がサンプル画像です。 相談する人も周りにおらず、困っております。 ご教授頂けたらと思います。 宜しくお願い致します。

  • エクセルVBAで実行する対象を選択文字列にするには?

    エクセルVBAで文字列を半角や全角にするマクロをつくっています。 私は、”あるセルに対して”はできるんですが、 その対象文字列を、”カーソルで選択して反転したところに対して”実行できるようにしたのです。できるんでしょうか。 よろしくおねがいします。

  • Excelで2バイト文字の前に半角スペース一括挿入

    いつもありがとうございます。 A列に下記のような 「半角英数」+「漢字(orひらがな・全角記号)」のデータが数百個あります。 abc漢字あああ 2zzあああ qrs5s~(ああ) 以下省略 半角英数と全角文字の間に半角スペースを一括挿入したいのですが、 どのようにすれば可能でしょうか。 (例えば "abc漢字あああ" を "abc 漢字あああ" に変換 "2zzあああ"   を "2zz あああ" に変換 "qrs5s~(ああ)" を "qrs5s ~(ああ)" ※"~"の前に半角スペース に変換) お知恵拝借できれば幸いですm(_ _)m

  • EXCELで、文字列を任意の文字数毎に分割するには

    ≪やりたい内容と条件≫ ◆EXCELで、文字列を任意の文字数毎に分割したいです。 ◆文字列は、全角・半角・記号を含みます。 ◆1つのセルが半角80桁という制限があり、その上限を超えると、右の次のセルに流し込まれるようにしたいです。(A1は元の文字列1500桁くらい、以降B1,C1,D1,E1・・・という具合に流し込み) ≪試した内容≫ MIDB関数を見つけ挑戦しましたが、1つ目のセルはうまくいきますが、その後が出来ません。例えば、文字列が「・・・・・・abcあいうえお」となっていた場合、B1は「・・・・・・abcあいう」、C1は「 お」(「お」の前は、半角スペース)となります。 何かよい方法はないでしょうか。 一度に出来ないようであれば、A1-B1で残りの文字列が表示できれば、それ以降はまた関数を入れて一つ一つやっていきたいと思っています。 よろしくお願いいたします。

専門家に質問してみよう