• ベストアンサー

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

k-pixの回答

  • k-pix
  • ベストアンサー率51% (50/98)
回答No.7

#1,#2の回答者様も書かれていますように、この問題は、なんらかの条件設定が必要です。 例えば、数字の部分が固定長(2桁とか、3桁とか決まりがある)ならば、#1様の回答が簡潔ですし、#2様が書かれてる条件におきましては、#2様の回答が適切でしょう。 私なりにご質問の意図を、「文字列(例:12カローラ)の先頭から、数字が続く限りはその数字(例:12)をB1セルに記述し、数字ではない文字が現れた時点で、残りの文字列(例:カローラ)をC1セルに記述する」と解釈致しました。 その解釈に基づいて、以下ではExcelのユーザ関数を紹介します。 下のユーザ関数'NumLen'というのは、先頭から続く数字の桁数を返すものです。 ユーザ関数の具体的な作成につきましては、参考URLなどを参考になさってください。 Public Function NumLen(sSrc)  Dim i As Integer  Dim iLen As Integer  iLen = Len(sSrc)  For i = 1 To iLen   If IsNumeric(Mid(sSrc, i, 1)) = False Then    Exit For   End If  Next  NumLen = i - 1 End Function これをVisualBasicEditorで作成した後、 B1セルに、 =LEFT(A1,NumLen(A1)) C1セルに、 =RIGHT(A1, LEN(A1)-NumLen(A1)) と入力してください。 以上です、とダラダラ参考意見を書いていますうちに、#4様によって簡潔な回答がなされていました。 #4様の回答は、私と同様の解釈によるものです。 わざわざユーザ関数を作成するより、ずっと簡潔です! ただ一点、C1セルにSUBSTITUTE(A1, B1, "")を用いますと、下記の場合に不具合が発生します。 例:A1=12カローラ1200と入力しますと、B1には、"12"、C1には、"カローラ00"と表示されてしまいます。 ですので、C1セルにはSUBSTITUTEを用いない方がいいでしょう。

参考URL:
http://www.excel.studio-kazu.jp/lib/e1iw/e1iw.html

関連するQ&A

  • エクセルで数値と文字列をひとつのセルに入れたい

    ひとつのセルの中に単位を共有させたいのですが B = 2.00 m H = 3.00 m A = B × H = 2.00 m × 3.00m = 6.00 m2 上の内容を次のようにしたい。 セルA1に B =   セルB1に 2.00 m (2.00は入力) セルA2に H =   セルB2に 3.00 m (3.00は入力) セルA3に A = セルB3に B × H = セルC3に 2.00 m × セルD3に 3.00 m = セルE3に 6.00 m2 セルC3の2.00はセルB1から持ってきます。 セルD3の3.00はセルB2から持ってきます。 セルE3は掛算で求めて、小数2位以下を四捨五入します。

  • エクセルでセル結合関数

    以下のことをしたいのですが、 難しくてできません。 どなたか教えてください。 a1 b1 c1 a2 b2 c2 a3 a2 a3 (1)a列に「あ」と入力すると b1とc1セルが結合し、結合したセルに「-」が入る (2)a列に「い」と入力すると b列には自由に文字を入れられる c列には「う」が入る (3)a列にそれ以外がはいるとブランク (1)かつ(2)かつ(3)のことをしたいです。 おそらくc列に =if(a="あ",[b列セルとc列セルを結合した後、-を入力],if(a="い","う","")) だと思うのですが、 [b列セルとc列セルを結合した後、-を入力] がわかりません。 よろしくおねがいします。

  • エクセル(関数とか)で同じ文字を太くするとか、簡単にできないでしょうか?

        A    B   C    D           1  Aくん  Bくん Cくん  hくん   2  Dくん  Eくん Fくん  Cくん    とあった場合、(おなじ文字のセル)Cくんの文字が太くなるとか、Cくんのセルに色がつくとかわかるようにするには、どうすれば簡単でしょうか   IFの入れ子とかでできるでしょうか?   どうかよろしくお願いします。

  • EXCEL 桁数を合わせた数値型セルの結合

    EXCELでのセル操作に関して下記のような結果を求めたいのですが、どういう関数なり操作を行えばいいのでしょうか? よろしくお願いします。 セルA(数値型) 123 セルB(数値型) 89 → セルC 12300089 セルA(数値型) 4567 セルB(数値型) 765 → セルC 456700765 ※セルBの部分を5桁扱いにしてセルCを完成させたいのです。 セルBの桁数が何桁になってもうまくいく方法を 教えてください。よろしくお願いします。

  • 関数がかかっているセルの数値に関数を・・・

    以前、下記の「平均の出し方を教えて下さい」で質問したものですが、 対象のセルA1~A10には、それぞれ C1-B1 のような関数(計算式) がかかっています。 これに「AVERAGE」をかけるとただしく出ません。 数値だけを認識させて、AVERAGEを出すにはどうしたらいいのでしょうか? よろしくお願いいたします。 --------------------------------------------- (以前の質問) エクセルでの関数を教えてください。 セルa1からa10に順に数値を記入します。 入力がa3やa7までの途中であっても=残りが未入力であっても a11に平均を自動的に(一つ入力が増えるたびに)出したいです。 a11にどのような式を入れたらいいのでしょうか? よろしくお願いいたします。 投稿日時 - 2014-05-02 18:52:39

  • エクセルの数値について

    エクセルで、たとえばA1セルに1、B1セルに2、C1セルに3の 数字が入力されています。 その上で、D1セルに「A1&B1&C1」という数式をいれると、 見た目上はD1セルに「123」と表示されますが、 数字の123(百二十三)という意味では認識されていないようで、 ほかの関数の参照に使えません。 見た目が「123」の値を、数字の「123」に変換する方法は ないでしょうか。 よろしくお願い致します。

  • セルの内容を合わせるエクセル関数

    お世話になります。 エクセルの関数にて、下記条件を満たす関数が作れないので 分かる方がいましたら教えてください。 A列には文字列が、B列には空白か1の数字がランダムに(1番上の行は必ず空白セル)入力されています。 これに対して、B列に空白から1が続いているセルまでをひとくくりとして、 右側のセルに表示させたいです。 画像では C2セル=A2 C3セル=IF(B3=1,C2&A3,A3)としてC4セル以降にコピペ D2セル=IF(B2="",C2,"")としてD3セル以降にコピペしていますが、 C列でひとくくりになるセルが下へ行ってしまい、 希望する結果に表示されないです。 関数が組める方がいましたらご伝授頂けますでしょうか。

  • エクセルの関数でセルの隣のセルを指定する方法

    セルC1の計算式を=A1+(C1の左隣のセル)と指定することは可能でしょうか? なんでかというとAとBの間にセルを挿入したときにもこのC1の計算式は=A1+B1と計算したいのです。 その場合にINDIRECT関数をつかっていたのですが、もしこの挿入したセルが空の時にはA1+B1のままではなくA1+C1(移動してB1がC1になった)にしたいからですが、 なにかよい方法があったら教えて下さい。 説明がわかりづらくて ごめんなさい 1)A1に10をB1に20を入力しておきます。 2)C1に10+20の30が表示(何らかの計算式) 3)AとBの間にセルを挿入 4)新しいB1せるに5を入力 5)D1(C1が移動した)には15が表示 6)もしB1に何も入力しなかったらD1は30を表示 こんなのって可能でしょうか? この何らかの計算式をアドバイスください よろしくお願いします。

  • 関数計算されたセルを数値にする方法

    すいませんが、教えてください。関数計算されたセルを関数計算の状態ではなく、数値として変更することは可能でしょうか? たとえばA1セル(1),B1セル(2)があり、C1セルに=SUM(A1+B1)と入力すると画面上では3とでますが、セルの中身としては関数式の状態です。これを"3"と認識したいのですが・・・。

  • エクセル セルに関数などを使って式を入力するには

    セルA1に”A3”、セルB1に”B3”と入力されている時に、 これらの文字を利用して、セルC1に次の式を入力したい。 =$A$3+B3 C1への入力が出来たら、セルA1とB1の値は不要なので削除したいのですが、お分かりの方お願いいたします。