• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同一セル内で大きい方の数字のみ抽出する関数について)

Excelの同一セル内で大きい方の数字のみ抽出する方法

このQ&Aのポイント
  • Excelの同一セル内に文字と数字が混同している場合、大きい方の数字のみを抽出する方法を教えてください。
  • 現在、セル内の文字列から数字を抽出する関数を使用していますが、一部の形式では正しく抽出できません。
  • 税込価格と中古品価格のような複数の形式に対応した関数を知りたいです。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

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,"")))

iri1121
質問者

お礼

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

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.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で確定してください。

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.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つのパターン以外には対応しませんが。

iri1121
質問者

お礼

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

iri1121
質問者

補足

早速のご回答有難うございます。 VBAが詳しく分かりませんので、関数のみで対処できると助かります。 また、上記の関数では確かにそれ以外の場合に対応できないのが難点です。 例えば下記のような表示の場合です。 GWセール特価:194,700円(税込) 180,700円(税込) 単純に価格のみ抽出できると助かります。 税抜きと税込の価格が1つのセル内に両方存在する場合は、税込価格を抽出する必要があります。 何卒、宜しくお願い申し上げます。

関連するQ&A