- ベストアンサー
漢字と数字が混じった文字列を漢字と数字に分けたい
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
関数では無理なのでVBAで組んでみました。 Alt+F11キーでVisualBasicEditorを呼び出し、メニューの挿入で標準モジュールを表示させたら、以下のコード(Sub~End Sub)をコピペしてみてください。 Alt+F11キーで再度ワークシートに戻ったら、メニューのツール、マクロ、マクロで出てきたTEST01を実行します。 Sub test01() Dim x As String Dim c As Integer x = Cells(1, 1).Value c = 2 For i = 1 To Len(x) If i > 1 Then If Not (IsNumeric(Mid(x, i, 1))) Then If IsNumeric(Mid(x, i - 1, 1)) Then c = c + 1 End If Else If Not (IsNumeric(Mid(x, i - 1, 1))) Then c = c + 1 End If End If End If Cells(1, c).Value = Cells(1, c) & Mid(x, i, 1) Next End Sub
その他の回答 (4)
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 1.該当A1セルをクリック 2.データ→区切り位置 3.「スペース・・・」を選択し、次へ 4.データプレビュー上の各データの区切り位置をクリックし、完了
お礼
回答ありがとうございます。 スペースが無いので困っています。
#3です。 ちなみに、前述のように文字列の文字数が固定ならば B1=LEFT(A1,2) C1=MID(A1,LEN(B1)+1,3) D1=MID(A1,LEN(C1&B1)+1,1) E1=MID(A1,LEN(B1&C1&D1)+1,4) F1=RIGHT(A1,3) でOKですが、いかがでしょう?
お礼
回答ありがとうございます。 固定ではないので困っています。
>AABBBABBBBAAAのように漢字と数字が混ざった文字列 この文字列の文字数及び、漢字と数字の配列は固定でしょうか? その場合、LEFT関数/RIGHT関数などの組み合わせにより抽出が可能かも。
お礼
回答ありがとうございます。 固定ではないので苦労してます。
- popesyu
- ベストアンサー率36% (1782/4883)
エクセルには標準では正規表現ができませんので、関数を組み合わせて作るのは無理でしょう。VBAが組めるのなら自作の関数を作ってしまえば済む問題なんですが。 次善の案としては「AA-BBBB-A-BB」のように特定の文字列で間を結ぶようにするとか(これならFIND関数やMID関数を組み合わせるだけで可能です)ぐらいでしょうか。
お礼
回答ありがとうございます。 入手したデータが大量にあるので、-を手で追加することが出来ないのです。
関連するQ&A
- A列にあったものには1、C列にあったものには2
シート1の内容をVBAをつかってシート2のようにしたいです。 つまり、シート1の2行目以降のデータをシート2のB列につなげて、 A列には シート1の1行目に記載している番号をふっていきます。 もともとA列にあったものには1、C列にあったものには2、E列にあったものには3と振りたいのですが、どのようにマクロを書けばいいでしょうか? [Sheet1] A B C D E 1 1 2 3 2 aa aaa aaaa 3 bb bbb bbbb 4 cc cccc 5 dddd ----------------------------- [Sheet2] A B 1 1 aa 2 1 bb 3 1 cc 4 2 aaa 5 2 bbb 6 3 aaaa 7 3 bbbb 8 3 cccc 9 3 dddd
- ベストアンサー
- オフィス系ソフト
- エクセルの文字処理
以前に同じ様な質問があったかも知れませんが、探しきれなかったので教えてください。 A1~A4の4つのセルに以下のスペースが入った文字列が入っていた場合 A1|AAA A2|AAA BBB A3|AAA BBB CCC A4|AAA BBB CCC DDD A B C D 1| AAA 2|AAA BBB 3|AAA BBB CCC 4|AAA BBB CCC DDD という具合にしたいのです。 条件は ・セル内にスペースで区切られない文字列があった場合には、B列に入れる ・それ以外はスペースで区切って、A列B列C列D列に入れる ・文字数は3文字固定ではなく全角半角が混在 以上です。すいません宜しく願いします。
- 締切済み
- その他(業務ソフトウェア)
- エクセルの文字列の検索に関して
また、エクセルに関しての質問です。 例えば A B C D 1あ 1 2い 2 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このような漢字で文字列が縦に入力されていて、 A B C D E 1あ 1 お 5 2い 2 う 3 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このようにD列にある文字に対してA列にある文字で該当する文字を発見し横のBセルにある番号を取ってくるということがしたいです。 この場合だとD1は「お」なので、A列の上から見ていくとA5に「お」があるので、B5の数字「5」をEに入力といったような具合です。簡単なように見えますが、複数の文字列を横断的に検索することができません。 誰か詳しいお方お教え願います。
- ベストアンサー
- オフィス系ソフト
- エクセルで複数の列から複数の文字列(数字)を選びたいです。
エクセルで複数の列から複数の文字列(数字)を選びたいです。 A B C D E F G H 1 12 1 4 5 8 6 2 36 7 2 5 6 3 55 3 4 88 1 3 8 5 87 上記のような表があったとき、C列からG列のいずれかに1、3、8のどれかが 含まれるとき、H列にB列の数字を入れたいのですが、どのようにすれば できるのでしょうか? この場合、A列の1,3,4段にそれぞれ12、55、88と入れたいということです。 よろしくおねがいいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルの文字列操作:縦に繰り返す方法
A、B、C列に半角英数文字、D列に数字が入っています。 A、B、C列の文字が繋がり、D列の数字分繰り返されるような計算式等を考えているのですが、 繰り返しの条件が縦に繰り返さなければならない為、四苦八苦しています。 イメージとしましては、例えば A1セルが「a」B1セルが「b」、C1セルが「c」、D1セルの数字が「3」 A2セルが「AA」B2セルが「BB」、C2セルが「CC」、D2セルの数字が「5」 だとすると、 abc abc abc AABBCC AABBCC AABBCC AABBCC AABBCC といった繰り返し結果が、別の列(○1~○7)に出来て欲しいのです。 最終的には、この結果をCSVで書き出して、バーコードとして専用プリンタで印刷しようというのが目的です。 何かよい手段は無いでしょうか?あるいはエクセルでは不可能なのでしょうか? 知恵をお貸しください。 宜しくお願い致します。
- ベストアンサー
- その他([技術者向] コンピューター)
- *EXCEL*2シートにあるデータを同じ文字列があるか検索して隣のセルを関連づける
タイトルではわかりにくいかと存じますがExcelの機能につきましてご質問です。 シート1の列Aに「文字列a」~「文字列z」 列Bに「文字列aaa」~「文字列zzz」が入力してあるとします。 シート2の列Dにシート1の列Aに入力してある文字列と同じ文字列が 入力してあるのですが、順は不同となります。 このときシート2の列Dの横(列E)に対応するシート1のAの横列(B) の文字列を表示させたいのですが、なにかよい方法はございます でしょうか。 シート1 シート2 A B D E a aaa d ddd ←この部分を関数などで b bbb a aaa 表示させる c ccc b bbb d ddd c ccc ご回答いただけますと大変ありがたいです。 よろしくお願いいたします
- 締切済み
- オフィス系ソフト
- <文字列マクロについて>
<文字列マクロについて> 皆さま お力を貸して下さい。 初心者で、何もわからず書いておりますがすみません。 下記の2つのマクロを教えて下さい。 ?横に並んだ「ある行」に在るデータを「列」に変換し、 指定した数だけ並べる あいうえお ←A1セルからE1まで5列(これは状況により変わる) ↓(マクロ実行:3行同じ数だけ並べるという指定) あ →A1セルから下にひたすら、同じ文字が続き順に並ぶ あ あ い い い う う →A1セルから下に並べる(3行は指定できれば別の数字にも変えたい う え え え お お お ?規則的に並んだデータのまとまりをセットで移動する。 例だと5つの塊(これは変数とおきたい) あ A a い B b う C c え D d お E e ↓(マクロ実行) あ い う え お A B C D E ・ ・ ・ ・ a b c d e
- 締切済み
- その他MS Office製品
- エクセル 文字列-文字列 を数式で区切りしたい
文字列の文字数が列で同じならLEFT、RIGHTで作ることができるのですが、 左右の文字数がランダムの場合がわかりません。 (例) A列 AAA-AAAAAA AA-AAAAA AAAAA-AA ↓ B列 C列 AAA AAAAAA AA AAAAA AAAAA AA この時のB1とC1の数式の作り方をご教授ください。 宜しくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- 2つの文字列に合うデータ取り出しについて
A列:氏名 B列:旅館名 C列:部屋番号 D列 い AAA 101 =B2+C2 お CCC 201 =B3+C3 う BBB 301 ・ え AAA 102 あ 旅館名と部屋番号に合う名前を取り出すのに E列:旅館名 F列:室番 G列:氏名と表を作っています。 AAA 101 AAA 102 ・ ・ BBB 101 ・ CCC 101 ・ 他の方が質問されてたのを参考に A列に氏名、B列に旅館名、C列に部屋番号、D列を作り(=b+c)として 他上記、G列に=VLOOKUP(旅館名&室番,$C$2:$D$100,2,FALSE) としましたがうまく行きません。 データソートすればよいのですが、それではやりたい事にはならないのです。 宜しくご指導お願いします。
- ベストアンサー
- オフィス系ソフト
- A列とC列に数字、B列に文字列が下記の通り配置されています。A列の番号
A列とC列に数字、B列に文字列が下記の通り配置されています。A列の番号の小さいものが”親”、番号の大きいものが”子”の様な関係(1が親、3が子、6が孫の関係)にある配置が有る場合に、D列に自分の親の文字列、E列にC列の値を元に値(子供は親×子、孫は親×子×孫の関係)を設定したい場合、どの様な方法で対応すればよいでしょうか? A列 B列 C列 D列 E列 1 文字A 3 3 3 文字B 2 文字A 6 6 文字C 2 文字B 12 1 文字D 1 1 3 文字E 2 文字D 2 6 文字F 2 文字E 4 3 文字G 1 文字D 1 6 文字H 1 文字G 1
- ベストアンサー
- オフィス系ソフト
お礼
回答ありがとうございます。 うまく作動しました。 マクロを作ることは大変なのでしょうが、 出来たマクロはシンプルで良いですね。