ここから質問投稿すると、最大4000ポイント当たる!!!! >>

一つのセルの中に、文字と数字が入っているのですが、
それを別々のセルに分けたいのです。。。

例)
後楽1-1-1 → 後楽 と 1-1-1
西新宿2-2 → 西新宿 と 2-2

どなたか良い方法をご存知でしたら、教えて下さい~!!

A 回答 (4件)

↓こちらの26番「数字で始まる部分から区分」を参考にしてください。



参考URL:http://www2.odn.ne.jp/excel/waza/function.html
    • good
    • 2
この回答へのお礼

ありがとうございます!!!
HPの開設通りにしたら、できました☆☆
感激です☆☆☆

本当に助かりました。ありがとうございました。

お礼日時:2003/10/15 10:29

全角文字ばかりのとき。


関数を標準モジュールに作ります。
Function fndsuu(a)
s = "0123456789"
For i = 1 To Len(a)
For j = 1 To 10
If Mid(a, i, 1) = Mid(s, j, 1) Then
fndsuu = i
Exit Function
End If
Next j
Next i
fndsuu = 0
End Function
初出の数字文字が現われ出る位置を返します。
後楽1-1-1なら3を返します。
C1に後楽1-1-1があるとして
後楽は=LEFT(C1,fndsuu(C1)-1)で
1-1-1は=RIGHT(C1,LEN(C1)-fndsuu(C1)+1)で分離できます。
    • good
    • 1
この回答へのお礼

ご回答頂きましてありがとうございました。
またどうぞ宜しくお願い致します☆

お礼日時:2003/10/15 10:32

(仮定)番地部分が半角とする。


関数でやります。
理屈の説明のため途中経過をA-G列に出します。
(A1)後楽1-1-1
(B1)=LENB(A1)     9
(C1)=JIS(A1)      後楽1-1-1
(D1)=LENB(C1)     14
(E1)=D1-B1       5
これで半角文字が5文字あることが判る。
(F1)=LEFTB(A1,B1-E1)  後楽
(G1)=RIGHTB(A1,E1)   1-1-1
結局半角部分は=RIGHTB(A1,LENB(JIS(A1))-LENB(A1))
全角部分は=LEFTB(A1,2*LENB(A1)-LENB(JIS(A1)))
    • good
    • 2
この回答へのお礼

ご回答ありがとう御座いました。
丁寧に解説までつけていただいて、とてもありがたいです。
またどうぞ宜しくお願い致します。

お礼日時:2003/10/15 10:31

' もし、#1さんの方法でうまくいかなかった場合、もしくはわからなかった場合・・・・



' 例)
' 後楽1-1-1 → 後楽 と 1-1-1
' 西新宿2-2 → 西新宿 と 2-2

' このような規則性があるとし、イレギュラーがないとしたら
' 次のコードを[ツール]-[マクロ]-[Visual Basic Editor]
' [挿入]-[標準モジュール] で追加してください。

' そして、データがA1にあるとしたら、
' B1 に =WordCut1(A1)
' C1 に =WordCut2(A1)
' と入れてください。

' 1行目に入力後、2行目以降に1行目をコピーしてください。


Function WordCut1(pStr As String) As String
Dim i As Long
Dim buf As String

For i = 1 To Len(pStr)
If IsNumeric(Mid(pStr, i, 1)) <> -1 Then
buf = buf + Mid(pStr, i, 1)
Else
Exit For
End If
Next i
WordCut1 = buf
End Function


Function WordCut2(pStr As String) As String
Dim i As Long
Dim buf As String

For i = 1 To Len(pStr)
If IsNumeric(Mid(pStr, i, 1)) = -1 Then
buf = Mid(pStr, i, Len(pStr))
Exit For
End If
Next i
WordCut2 = buf
End Function
    • good
    • 1
この回答へのお礼

ご回答頂きまして、ありがとうございました。
またどうぞ、よろしくおねがいいたします☆

お礼日時:2003/10/15 10:30

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

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

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

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

Qエクセル 同一セル内の数値と文字を分ける関数

セルA1:12カローラ



セルB1:12 C1:カローラ

にしたいのですが可能でしょうか?

よろしくお願い申し上げます。
 

Aベストアンサー

数字の桁とかは規則性はありますか?

規則性があって必ず先頭から二桁が数字なら、
=LEFT(A1,2)
で数字を抜き出し、続いて
=MID(A8,3,LEN(A8)-2)
で文字を抜き取ります。

もしも数字の桁数に規則性がないなら、もう一度
内容を補足して下さい。

Qエクセル 数値だけ抽出するには?

エクセルで、文字列+スペース+数字と入力されているセルから数値だけ取り出す方法を教えていただけますか?
文字列とスペースの字数は一定で、数値の桁数は6-8桁と変動します。
A列からb列のように変換したいのです。

A列          B列
PMID:_12345678    12345678
PMID:_123456     123456

宜しくお願いいたします。

Aベストアンサー

B1に
VALUE(REPLACE(A1,1,6,""))
でよいでしょう.

数値の桁数には依存しません.

Qエクセルのセル内から数字だけを抽出する方法を教えて下さい

エクセルのセル内から数字だけを抽出する方法を教えて下さい
あるデータの列(備考欄)には様々な文字が入っていて、
その中に●名(●は数字)が入っています その数字だけを取り出して
別の列に移す関数を教えて下さい
※この列には他の数字は入っていません、最大で2ケタです

よろしくお願いします

Aベストアンサー

セル内の文字列の中に2桁までの数字が入っている場合に、その数字部分を抽出したいなら以下のような数式になります。

=MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A2)&1234567890)),1)&IF(ISNUMBER(MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A2)&1234567890))+1,1)*1),MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A2)&1234567890))+1,1)*1,"")

Q数値とアルファベットに分ける(エクセル)

例えばA列に
ABCD1234
KJD234
LO2335
FDRTY3523
上記のように品番が入力されていたとします
これをアルファベットをB列に数値をC列に
分ける簡単な方法はありませんか?
やはり、関数しかないでしょうか?

Aベストアンサー

こんにちは。KenKen_SP です。

A1 からデータが始まるとして、

B1 の数式:(アルファベット部)
=LEFT(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},ASC(A1)&1234567890))-1)

C1 の数式:(数字部)
=RIGHT(A1,LEN(A1)-LEN(B1))

とし、B1:C1 を選択して、データ終端までフィルでコピーです。
関数のままが嫌なら、最後にコピー&形式を選択して貼り付け で値にすれば
良いと思います。

Q【エクセル】セル内の文字列から数値のみを抽出する方法

A1●●●●1111
A2××××××222222
A3■■■■■■■■■■■1234567890

上記のように文字列と数値が一続きになっているデータが各セルに入っています。
文字列+数値の順番は決まっていますが、それぞれの文字数は決まっていません。数値はマイナスの場合もあります。
また、境にカンマやスペースなどもないため、テキストファイルウィザードも使えません。
このデータから、数値のみを抽出する方法がありましたらご教示下さい。
よろしくお願いします。

Aベストアンサー

No.3の方に似ていますが…。

=IF(ISERROR(FIND("-",A1))
,MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A1)&"0123456789")),LEN(A1))
,MID(A1,FIND("-",A1),LEN(A1)))

(長くなってしまったので改行していますが、1行に入れてください)
これで数字部分の桁制限なく抜き出せるかと思います。

QExcel 文字列の中から数字だけを削除したい

Excel 2007で各セルに文字列として入力されている、数字を削除し文字だけにしたい。
数字は先頭に入力されています。(顧客コード)

例:
12345-001 ABC株式会社
98765- ZYX有限会社ごお商会 等

数字を削除し文字列だけで元のセルにセットしたいです。


きっと簡単なことなんでしょうけど、過去を検索しても良くわかりませんでした。

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

Aベストアンサー

[No.3お礼]へのコメント、

私が提示した式の意味が分かる(と思う)添付図を参照ください。
B1: =TRIM(ASC(A1))
C1: =FIND(" ",B1)
D1: =MID(B1,C1+1,99)

最後の式中の B1、C1 に上2つの式を代入すれば、提示式になります。

セル A2 の「ZYX有限…」の直前は全角スペースだったので、半角スペース1個にするために、先ずはASC関数で全角スペース1個を半角スペース2個にし、TRIM関数で複数個の半角スペースを1個に置き換えています。ちなみに、文字列の左端や右端にスペースがあればそれらを除去します。
最初のスペースの「次」から文字列を切り出すので「+1」になっています。
A列の文字数は百文字以上は考えなくてよかろうと推測して「99」にしました。

【注意】3行目以降に示したように、全角アルファベットおよび全角カナは、何れも半角文字になってしまいます。

以上の解説で分からなければ、貴方の「レベル」に合った回答に従ってください。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで、いつのセルに入っている7桁の数字をそれぞれ1つづつ、7つのセルに分ける関数はありますか??

こんばんは。大変こちらでお世話になっています。

エクセルのデーターをもとに、宛名印刷をしたくていろいろ試みているのですが、会社規定の封筒の郵便番号枠に、美しく数字を印字することがどうしてもできません。
こうなったら、郵便番号をばらして、1字づつ印刷しようかと思っています。

そこで教えて頂きたいのですが、今1つのセルに入っている郵便番号7桁をそれぞれ1桁づつ、7つのセルに分けたいのです。これは何か関数を使ってできるのでしょうか?
どうぞ教えてください。よろしくお願いします。

Aベストアンサー

MIDという関数が良いかと思います。
A1に対象の値が入っているとして
=MID(A1,xxx,1)
xxxの部分は何桁目から取り出すか、最後の数字が何文字取り出すかという指定です。

例)A1に「abcdefg」とあり
=MID(A1,3,1)
とすると「c」が表示されます。

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

どうぞよろしくお願いいたします。

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。


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

人気Q&Aランキング