こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

同一セル内で大きい方の数字のみ抽出する関数について

エクセルの同一セル内で大きい方の数字のみ抽出する方法がわからず困っております。

1つのセルには下記の2行のような情報が含まれます。

--------------------------------------
(A1セル) 189,815円 (税込 205,000 円) 送料込

(A1セル)中古品 ¥ 138,000より

--------------------------------------

(A1セル) 189,815円 (税込 205,000 円) 送料込 の場合、
下記関数にて税込の金額が正しく表示されますが、
(A1セル)中古品 ¥ 138,000より を入力した場合正しく表示されません。

=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),99*3-99,99))*1


(A1セル)中古品 ¥ 138,000より の場合、下記関数にて正しく表示されますが、
(A1セル) 189,815円 (税込 205,000 円) 送料込 の場合、正しく表示されません。

=LOOKUP(10^10,MID(A1,MATCH(0,INDEX(0/MID(A1,COLUMN(1:1),1),),),COLUMN(1:1))*1)


両方の形式に対応する関数を教えて頂けましたら幸いです。


要は、文字と数字が同一セル内に混同する場合、数値のみを抽出するが、
その際に大きい方の数値のみを抽出するということです。


どうかご存知の方がいらっしゃいましたら、お知恵をお貸し頂きたく、何卒、宜しくお願い申し上げます。

投稿日時 - 2014-04-28 10:14:52

QNo.8571945

すぐに回答ほしいです

質問者が選んだベストアンサー

No2の回答の補足と訂正です。

提示した数式は、同じ計算を2回行うなど(計算負荷がかかる)数式に無駄がありますのでExcel2007以降をご使用なら以下のような数式に訂正してください。

=MAX(IFERROR(MID(A1,ROW($1:$30),COLUMN($A:$G))*1,""))

お分かりだと思うので追加しませんでしたが、A1セルが空白セルの場合にも対応するようにするには、以下のようにIF関数を追加してください(多数のセル(A列の未入力セル)にこの数式を入力する場合は計算負荷の観点から重要)。

=IF(A1="","",MAX(IFERROR(MID(A1,ROW($1:$30),COLUMN($A:$G))*1,"")))

投稿日時 - 2014-04-28 12:40:34

お礼

この度は、非常にシンプルな関数をご教授頂きまして、誠に有難うございました。
ROW($1:$30),COLUMN($A:$G)の範囲を選択しないといけないのが、良く分かっておりませんが、
とりあえず、A1のみならずどのセルでも対応しているようですので、迅速なご回答に心より感謝いたします。

投稿日時 - 2014-04-28 13:19:02

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

表示データ数が多いとシートの動きが重くなるのであまりお勧めできませんが、セルの入力文字数が30以内で、数字の桁数が7ケタ以内という条件で数式を作成すると、以下のような配列数式で表示することができます。

=MAX(IF(ISNUMBER(MID(A1,ROW($1:$30),COLUMN($A:$G))*1),MID(A1,ROW($1:$30),COLUMN($A:$G))*1,""))

配列数式なので入力後Ctrl+Shift+Enterで確定してください。

投稿日時 - 2014-04-28 12:16:35

ANo.1

VBAで組んじゃう方が分かりやすいと思いますが、VBAは使えない条件なんでしょうか?


質問の2つのパターンだけなら、A1セルが「中古品」で始まってるかどうかで場合分けするとか。

=IF(LEFT(A1,3)="中古品", LOOKUP(10^10,MID(A1,MATCH(0,INDEX(0/MID(A1,COLUMN(1:1),1),),),COLUMN(1:1))*1), TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),99*3-99,99))*1)

当然、その2つのパターン以外には対応しませんが。

投稿日時 - 2014-04-28 10:46:18

補足

早速のご回答有難うございます。

VBAが詳しく分かりませんので、関数のみで対処できると助かります。
また、上記の関数では確かにそれ以外の場合に対応できないのが難点です。

例えば下記のような表示の場合です。

GWセール特価:194,700円(税込)
180,700円(税込)

単純に価格のみ抽出できると助かります。
税抜きと税込の価格が1つのセル内に両方存在する場合は、税込価格を抽出する必要があります。

何卒、宜しくお願い申し上げます。

投稿日時 - 2014-04-28 11:25:06

お礼

場合分けする方法もあるのですね。
ご回答有難うございました!

投稿日時 - 2014-04-28 13:20:10

あなたにオススメの質問