No.10ベストアンサー
- 回答日時:
回答No9です。
B1セルには次の式を入力して式を確定する段階でCtrl+Shift+Enterで確定します。その式を下方にオートフィルドラッグします。
=IF(A1="","",MIN(IF(ISNUMBER(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A1))),FIND({0,1,2,3,4,5,6,7,8,9},ASC(A1)),100)))
C1セルへはNo9の式を入力し下方にオートフィルドラッグします。
お返事が遅くなり申し訳ございません。
こちらを参考にさせていただきたいと思います!!
何度も何度もありがとうございました。
正直、こんなに多くのご回答を頂けると思っていませしたので、
とても感激しています。
ご回答を頂きました皆様、本当に本当にありがとうございました。
頑張ります!!
No.13
- 回答日時:
回答番号ANo.7です。
失礼しました、回答を入力している間に、補足によって新たな情報の追加があった様です。
>括弧がないこともあるし、必ず2番目から数字が入力されているわけではなく、
それでしたら、作業列を設けて、別のセルで、文字列中で数字が最初に現れる位置を、求めておくと言う方法が使えます。
今仮に、Sheet1のA1セルに元となる「括弧で括られた単位付きの数値」を表す文字列データーが存在するものとします。
又、Sheet2のA列を作業列として使用して、Sheet1のB1セルに、取り出した数値を表示させるものとします。
まず、Sheet2のA1セルに次の数式を入力して下さい。
=SUMPRODUCT((ISNUMBER(FIND("0",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))+ISNUMBER(FIND("1",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))+ISNUMBER(FIND("2",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))+ISNUMBER(FIND("3",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))+ISNUMBER(FIND("4",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))+ISNUMBER(FIND("5",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))+ISNUMBER(FIND("6",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))+ISNUMBER(FIND("7",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))+ISNUMBER(FIND("8",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))+ISNUMBER(FIND("9",LEFT(ASC(Sheet1!$A1),ROW(INDIRECT("Z1:Z"&LEN(Sheet1!$A1))))))=0)*1)+1
次に、Sheet2のA1セルをコピーして、Sheet2のA2以下に貼り付けて下さい。
次に、Sheet1のA1セルに次の数式を入力して下さい。
=IF(ISNUMBER(MID($A1,Sheet2!$A1,1)+0),MID($A1,Sheet2!$A1-(MID("+"&ASC($A1),Sheet2!$A1,1)="-"),SUMPRODUCT(ISNUMBER(MID($A1,Sheet2!$A1,ROW(INDIRECT("Z1:Z"&LEN($A1)-Sheet2!$A1)))+0)*1)+(MID("+"&ASC($A1),Sheet2!$A1,1)="-"))+0,"")
次に、Sheet1のA1セルをコピーして、Sheet1のA2以下に貼り付けて下さい。
これで、数字の前に文字が何文字も存在している場合や、数値の前には文字がついていない場合、数値が何桁もある場合、数値が負の数値である場合、数値の後に何文字も文字が続く場合等でも、取り出した数値をSheet1のB1セルに表示させる事が出来ます。
お返事が遅くなり申し訳ございません。
すばらしいのですが、別シートだと私には難易度が高いです。
何度もご回答頂いたのに申し訳ございません。
ありがとうございました。
No.12
- 回答日時:
負がない、数字がひとまとまり の条件下で
=LOOKUP(8^3^8,MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)),{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16})*1)
左から数えて最初の数値を検索し、そこから1桁、2桁、3桁・・・16桁分抽出
数値として読み取れる一番大きな桁数のものを返す
No.11
- 回答日時:
参考までに
配列数式は多用すると再計算に時間がかかり動きが重くなりますが、前回提示した式よりも計算負荷を少なくするなら、以下のように配列の範囲を小さくした数式の方が良いと思います(この場合もCtrl+Shift+Enterで確定)。
=MAX(IF(ISNUMBER(LEFT(MID(A1,MATCH(0,-ISERR(-MID(A1,ROW($1:$30),1)),),9),ROW($1:$9))*1),LEFT(MID(A1,MATCH(0,-ISERR(-MID(A1,ROW($1:$30),1)),),9),ROW($1:$9))*1,0))
ちなみに上記の数式は、30文字までの文字列に対して、数字部分が9桁(小数点の数字の場合は数字8個まで)の数字を抽出する式になっています。
No.9
- 回答日時:
回答No2,4です。
作業列をB列に設け、B1セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A1="","",MIN(IF(ISNUMBER(FIND(0,ASC(A1))),FIND(0,ASC(A1)),100),IF(ISNUMBER(FIND(1,ASC(A1))),FIND(1,ASC(A1)),100),IF(ISNUMBER(FIND(2,ASC(A1))),FIND(2,ASC(A1)),100),IF(ISNUMBER(FIND(3,ASC(A1))),FIND(3,ASC(A1)),100),IF(ISNUMBER(FIND(4,ASC(A1))),FIND(4,ASC(A1)),100),IF(ISNUMBER(FIND(5,ASC(A1))),FIND(5,ASC(A1)),100),IF(ISNUMBER(FIND(6,ASC(A1))),FIND(6,ASC(A1)),100),IF(ISNUMBER(FIND(7,ASC(A1))),FIND(7,ASC(A1)),100),IF(ISNUMBER(FIND(8,ASC(A1))),FIND(8,ASC(A1)),100),IF(ISNUMBER(FIND(9,ASC(A1))),FIND(9,ASC(A1)),100)))
これで数値が文字列の何番目から始まっているかがわかります。
そこで答えですがNo4の式を利用します。C1セルには次の式を入力して下方にオートフィルドラッグします。
=IF(ISNUMBER(MID(A1,B1,5)*1),MID(A1,B1,5)*1,IF(ISNUMBER(MID(A1,B1,4)*1),MID(A1,B1,4)*1,IF(ISNUMBER(MID(A1,B1,3)*1),MID(A1,B1,3)*1,IF(ISNUMBER(MID(A1,B1,2)*1),MID(A1,B1,2)*1,IF(ISNUMBER(MID(A1,B1,1)*1),MID(A1,B1,1)*1,"")))))
No.8
- 回答日時:
>括弧がないこともあるし、必ず2番目から数字が入力されているわけではなく、文字列の間に数字がある場合もあるのです。
数式は簡略化できる可能性がありますが、文字列にはさまれた数字を取得するなら以下のような数式で表示できます。
=MID(LEFT(A1,MAX(ISNUMBER(MID(A1,COLUMN(1:1),1)*1)*COLUMN(1:1))),MIN(IF(ISNUMBER(MID(LEFT(A1,MAX(ISNUMBER(MID(A1,COLUMN(1:1),1)*1)*COLUMN(1:1))),COLUMN(1:1),1)*1),COLUMN(1:1),"")),10)*1
配列数式ですので入力後Ctrl+Shift+Enterで確定してください。
お返事が遅くなり申し訳ございません。
すみません。
エラーになってしまうところがあってダメでした。
ご回答ありがとうございました。
No.7
- 回答日時:
括弧の種類や、単位の種類、数字の桁数には影響されない方法です。
但し、6.022×10^23mol^-1や2.99792458E8m/sといった、指数で表示された数値には対応しておりません。
又、元となる「単位付きの数値」が、必ず括弧等の「数字やマイナス記号ではない」文字から始まっている場合には対応していますが、最初の文字が数字となっている文字列に対しては、対応しておりません。
今仮に、A1セルに元となる「括弧で括られた単位付きの数値」を表す文字列データーが存在するものとします。
その場合には、数値のみを取り出す関数は、次の様なものになります。
=IF(ISNUMBER(MID(A1,2,1+(ASC(MID(A1,2,1))="+")+(ASC(MID(A1,2,1))="-"))+0),MID(A1,2,SUMPRODUCT(1*ISNUMBER(MID(A1,2,ROW(INDIRECT("Z1:Z"&LEN(A1)-2)))+0))+(ASC(MID(A1,2,1))="-")+(ASC(MID(A1,2,1))="+"))+0,"")
No.6
- 回答日時:
こんばんは!
VBAでの一例です。
一文字ずつ舐めるように検索していき、半角数字・ピリオドだけ表示するようにしてみました。
画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub test() 'この行から
Dim i, j As Long
Dim str, buf As String
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To Len(Cells(i, 1))
str = Mid(Cells(i, 1), j, 1)
If str Like "[0-9]" Or str = "." Then
buf = buf & str
End If
Next j
Cells(i, 2) = buf
buf = ""
Next i
End Sub 'この行まで
尚、データはA1セルからあるとしていますので、仮にA2セルからデータがある場合は
>For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
の部分の「1」を「2」に変更してマクロを実行してみだください。
※ 仮に1.0のように小数点以下が0になった場合は整数部のみ表示されてしまいます。
他に良い方法があればごめんなさいね。m(_ _)m
お返事が遅くなり申し訳ございません。
このような感じが理想でした!!
ですが、全角の場合もあり、データが数万あるので少し重いかもです。
せっかく考えてくださったのに申し訳ございません。
ご回答ありがとうございました
No.5
- 回答日時:
特に何も使用上の制限がないマクロを使った方法です。
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピーする
Function getnum(ByVal target As Variant)
Dim i
For i = 1 To Len(target)
If IsNumeric(Mid(target, i, 1)) Then
getnum = Val(StrConv(Mid(target, i, 15), vbNarrow))
Exit Function
End If
Next i
End Function
ファイルメニューから終了してエクセルに戻る
A1セルに言葉が記入してあるとすると
=getnum(A1)
のように計算させる。
#マクロはやっぱりイヤなときは
=IF(A1="","",LEFT(MID(A1,2,15),MAX(IF(ISNUMBER(MID(A1,ROW($A$1:$A$15),1)*1),ROW($A$1:$A$15)-1)))*1)
といった数式を「コントロールキーとシフトキーを押しながらEnterで入力」(<必ず忘れずこう操作すること)します
No.4
- 回答日時:
回答No2です。
B1セルには次の式を入力して下方にオートフィルドラッグします。
=IF(ISNUMBER(MID(A1,2,5)*1),MID(A1,2,5)*1,IF(ISNUMBER(MID(A1,2,4)*1),MID(A1,2,4)*1,IF(ISNUMBER(MID(A1,2,3)*1),MID(A1,2,3)*1,IF(ISNUMBER(MID(A1,2,2)*1),MID(A1,2,2)*1,IF(ISNUMBER(MID(A1,2,1)*1),MID(A1,2,1)*1,"")))))
この式でしたら単位がどのように変わろうとも問題ありません。ただし数値の部分の文字数は小数点を含めて5つまでです。6つまでの場合にはさらに追加してください。
この回答への補足
ご回答ありがとうございます。
すばらしいです!!
ほぼ思い通りになりました。
ですが、また言葉が足りなくて申し訳ありませんが、
括弧がないこともあるし、必ず2番目から数字が入力されているわけではなく、
文字列の間に数字がある場合もあるのです。(各1個など)
やはり無理難題ですね。
何度もお答え頂きありがとうございました。
助かりました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) 日付以外のデータを抽出したいのですが、 6 2023/06/27 13:32
- Excel(エクセル) エクセルで#以降の文字を取得したい 1 2022/03/28 13:14
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) 皆様、御力をお貸し下さい。。。 スプレッドシートで関数を組みたいのですが、上手く組めません。 ▼抽出 3 2023/02/04 15:49
- Excel(エクセル) エクセル 3つの値の中からデータを抽出させる方法 4 2023/08/24 11:00
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Excel(エクセル) エクセル関数について 8 2023/06/28 17:04
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
Excelで任意の文字列から小数を含む数値を抽出するには?
Excel(エクセル)
-
エクセル VBA 小数点を含む数字抽出について
Excel(エクセル)
-
エクセルで、文字列から数値だけを抽出
Excel(エクセル)
-
-
4
関数で小数点以下を抽出したい
Excel(エクセル)
-
5
エクセルで小数点以下を抜き出す場合、末尾の0が認識されません。どうすれ
その他(Microsoft Office)
-
6
エクセルで、桁数の異なるデータ(整数)を抜きたしたいのですが?
その他(パソコン・スマホ・電化製品)
-
7
エクセルにて、フィルタをかけた時少数のみを抽出
Excel(エクセル)
-
8
エクセルのセルで整数のみ選択したい
その他(ビジネス・キャリア)
-
9
エクセルで数値の文字数を数える方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの入力規則で2列表示したい
-
数式が入ったセルを含めて、数...
-
複数の文字列のいずれかが含ま...
-
SUMに含まれる範囲から特定のセ...
-
スペースとスペースの間の文字...
-
Excel上でのデータ数字が連番で...
-
エクセル:横長の表を改行して...
-
エクセルで曜日に応じた文字を...
-
エクセルでセルの値分の個数の...
-
「エクセル」特定の行(セル)...
-
列の数字に100をかけたい
-
エクセル セル内の文字数を超え...
-
空白行も含めてソートしたい
-
Excelにて、セルをダブルクリッ...
-
エクセルで表示されている数字...
-
エクセルで、毎日の走行距離(...
-
【Excel】での計算式教え...
-
エクセルのsumifでかけ算してか...
-
Excelでの検索結果を含む行だけ...
-
Excelのセル内文字の並び替えに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの入力規則で2列表示したい
-
複数の文字列のいずれかが含ま...
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
Excel上でのデータ数字が連番で...
-
スペースとスペースの間の文字...
-
エクセル:横長の表を改行して...
-
エクセルで表示されている数字...
-
列の数字に100をかけたい
-
エクセルでセルの値分の個数の...
-
エクセルで1列全部10倍したい
-
エクセルのsumifでかけ算してか...
-
エクセル セル内の文字数を超え...
-
エクセルで、毎日の走行距離(...
-
時間を「昼間」と「夜間」に分...
-
エクセルで曜日に応じた文字を...
-
エクセルで小数を含む数値の抽出
-
別のセルに値が入力されたら、...
-
「エクセル」特定の行(セル)...
-
Excelのセル内文字の並び替えに...
おすすめ情報