人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

文字列から数字を抜き取る関数・どのようなエクセル関数を入れればいいですか?

B3セル 2,600円
B4セル 決済金額:2,765円


となっています。しかし、B4セルは中身が入っていない空白セルの時もあります。(B3セルは常になんらかの円となっています)
C3セルに、B4セルが中身が入っていないときには、B3セル内の内容の2600という数字を表示させ、
もし、B4セルに今回のように決済金額が入っているときには2765を表示させたいときには、どのように関数を組めばよいでしょうか?

数字は、常にかわります。1円のときもありますし、999,999円のときもあります。千区切りのマークも入ります。

ユーザー関数でない方を希望します。
よろしくお願いいたします。

●質問者: naranara19
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● nek
●79ポイント

まず、B3B4の書式設定をしましょう。

?B3(右クリック) → セルの書式設定 → (左のリストから)ユーザー設定 → (種類:の下の欄に入力)#,##0"円"; → OKクリック
?B4(右クリック)→ 同上 → 同上 → (種類:の下の欄に入力)"決済金額:"#,##0"円"; → OKクリック

これで、B3B4セルは数字を入力するだけで「1,000円」なり「決算金額:2,000円」なり表示されるようになります(日本語部分はつど入力しなくて済みます、というより、日本語部分は入力しないでください)

?C3には=IF(B4>0,B4,B3)を入力(B4のマイナス値はゼロとみなします)

これでご希望の状態になると思います。


naranara19さんのコメント
ありがとうございます。ただ、B3、B4は入力をこれからするのではなく、そこから読み取ってC3セルをもとにいろいろ操作するのです。ですのでC3に一発で関数でお願いしたいのですがこれは可能でしょうか?

nekさんのコメント
B3B4が確実に質問通り入力される前提(B3***,***円、B4決済金額:***,***円)で、 =IFERROR(IF(VALUE(MID(B4,6,LEN(B4)-6))>0,VALUE(MID(B4,6,LEN(B4)-6)),),VALUE(LEFT(B3,LEN(B3)-1))) を試して見てください。 ただしこれは、正確に上記通り入力されるのが前提です。 B3は”円”を省いた残りを、B4は”決算金額:”と”円”を除いた残りを数値化します(数字の桁数は自由です)。 例えばB4が”決算額:123,456,789円”の場合(決算額:の文字数4字で1字足りない)、23,456,789となってしまうでしょう。 ・・・どうですか?^^;

naranara19さんのコメント
ありがとうございます!完璧でした。感謝いたします!!

naranara19さんのコメント
あ、すみません。決済金額が入っているときはそちらの金額を表示させたいので、ちと違ったかもしれません。

2 ● kimuram
●100ポイント ベストアンサー

基本的に前の方と同じですが、
”B4セルは中身が入っていない空白セルの時も?”
とのことなので、

=IF(B4="",VALUE(LEFT(B3,LEN(B3)-1)),VALUE(MID(B4,6,LEN(B4)-6)))

の感じです。
試してみてください。


naranara19さんのコメント
短いのもいいですね!感謝です。

3 ● nepia11
●80ポイント

=VALUE(IF(B4="",SUBSTITUTE(B3,"円",""),SUBSTITUTE(SUBSTITUTE(B4,"円",""),"決済金額:","")))

これで行けます。
SUBSTITUTEは置き換える関数。
SUBSTITUTE(B3,"円","")は"円"を空白に置き換える、という意味です。


naranara19さんのコメント
なるほど。その手がありましたか!

4 ● rsc
●50ポイント

こんな感じでなるみたいですが、何か呪文みたいでわかりにくいので、VBAでユーザー定義関数を作った方が良くないですか。
作るといってもコピペするだけなので。(^_^;

=SUBSTITUTE(MID(B3,MIN(FIND({0,1,2,3,4,5,6,7,8,9},B3&"0123456789")),LEN(B3)),"円","")+0

※参考URL
https://ymyk.wordpress.com/2010/02/09/excel%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%81%A7%E6%95%B0%E5%AD%97%E3%81%AE%E3%81%BF%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B/

https://kokodane.com/2013_macro_65.htm


naranara19さんのコメント
ありがとうございます!VBAは他に使いすぎてましてここでは使いたくないのです。回答感謝いたします!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ