[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『』()
『123個から123だけ取り出したい』(エクセル初心者)
セルの中にある値から、数字だけを取り出したいのですが、
例:A1「123個」
A2「4567個」
上記のセルから、数字だけを取り出す場合の関数ありますか。
ご存知の方教えてください。
宜しくお願いします。
エクセル初心者より。
しかしながらデータが数千件有り、数字の後に記載されている文字は、多種多様です。
出来れば、数字だけを取り出す関数を最初のセルに入れれば、後はコピィーで処理
したいのですが、我侭でしょうか?
置換も有効な手段ではありますが、再再度アドバイスお願いします。
エクセル初心者
B1に =LEFT(A1,LEN(A1)-1) とすれば、できます。
A1の文字列の左から文字列の一文字引いた文字を返しなさいの意味です。
この式を下方コピーすれば、取り出せます。
(シニア)
しかし、123個、4567個と言うように、最後が必ず1文字に限らない場合は、例えば
「123セット」「100/個単位」と言った場合は、どうでしょうか?
再度よろしくお願いします。
「100/個単位」は"/"の位地を検索して、その文字位置より前の文字を取り出します。
=LEFT(A1,FIND("/",A1)-1) とします。
?@【置換】方法で単位を削除する
関数のお尋ねでしたが、「セット」「/個単位」「個」を【置換】する方法で取り除くことが出来ます。
置換する範囲を選択して、Ctrl+H(Ctrlキーを押しながらHキーを押します)
「セット」を取り除く場合は
「検索する文字列(N)」にセットと入力し、「置換後の文字列(E)」は無記入で【すべて置換(A)】押します。
続けて、Ctrl+Hで検索する文字列(N)」に/個単位と入力し、【すべて置換(A)】押します。
更に、Ctrl+Hで検索する文字列(N)」に個と入力し、【すべて置換(A)】押します。
これで文字列が数値になりましたから計算が可能になります。
?A【セルの書式設定】で単位をつける
数値に文字列単位をセルの書式設定で指定すれば、計算が可能になります。
例えば123、4567のセルを選択して右クリックメニューで「セルの書式設定」「表示形式」【ユーザー定義」で
G/標準"セット" とすれば、123セット、4567セットとなり、セルには数値がり、書式設定で単位を追加したことになります。
同様の方法で"/個単位"、"個"も「セルの書式設定」「ユーザー定義」でおこないます。
(シニア)
ご親切なアドバイスありがとうございました。
しかしながらデータが数千件有り、数字の後に記載されている文字は、多種多様です。
出来れば、数字だけを取り出す関数を最初のセルに入れれば、後はコピィーで処理
したいのですが、我侭でしょうか?
置換も有効な手段ではありますが、再再度アドバイスお願いします。
エクセル初心者
五文字以上の場合はこの式を参考に書き加えて下さい。
A1に45678/個単位⇒B1に45678と変換されます。
数字だけのセルは除外しました。降順に並べ替えをして、数値セルと文字列セル分離して下さい。
B1の式は
=IF(OR(RIGHT(A1,4)>CHAR(57),RIGHT(A1,4)<CHAR(48)),LEFT(A1,LEN(A1)-4),IF(OR(RIGHT(A1,3)>CHAR(57),RIGHT(A1,3)<CHAR(48)),LEFT(A1,LEN(A1)-3),IF(OR(RIGHT(A1,2)>CHAR(57),RIGHT(A1,2)<CHAR(48)),LEFT(A1,LEN(A1)-2),LEFT(A1,LEN(A1)-1))))
(シニア)
数式を拝見させていただき、大変な驚きと感心を覚えました。
発想の素晴らしさを痛切に感じています。
色々な機能を知っていても、どのような場面でどうすれば、関数を役立てれるかは、
個人のセンスによるものだと思っています。
シニアさんの今回の数式は、凄いですね。
素晴らしいセンスの持ち主と思います。
さっそく役立ててみます。
今後ともご指導宜しくお願いします。
(エクセル初心者)
−−−
[なお]さんにまけないように私もひとつ、Excel-VBAで正規表現を使ってみました。
私はExcel-VBAで正規表現が使えることを知りませんでしたが、助手が発見。
実際に使うには下半分のFunction からEnd FunctionまででOKです。
(kazu)
'単独テスト用
Dim ans As Variant
ans = UFstr2num("123個")
MsgBox ans
ans = UFstr2num("3776ケース")
MsgBox ans
ans = UFstr2num("4,56ケース")
MsgBox ans
End Sub
Function UFstr2num(dat)
' [ツール(T)メニュー]の[参照設定(R)]で
' [Microsoft VBScript Regular Expression]をチェックOnする必要があります
' ワークシート側からは単に =UFstr2num(A1) で使えます
Dim reg As New RegExp
Dim ret As String
reg.Global = True
reg.Pattern = "[^0-9]"
ret = reg.Replace(dat, "")
UFstr2num = ret
End Function
なおさん、kazuさんマクロでのフォロー有難う御座いました。
kazuさんの紹介されたユーザーファンクションの=UFstr2num(A1)で見事に多種多様な単位削除が出来ました。
大変勉強になりました。御礼申し上げます。
(シニア)
xさん、復元ありがとうございます。 (se_9) 2016/02/25(木) 07:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.