• ベストアンサー

エクセルで小数点のみを抽出する場合

エクセル2003で、ある数値(例えば20.3と30.43と10.45)から小数点のみで考えて小数点の大きいものに+1したいのですが、どのようにすればいいのか分かりません。方法があるならば教えてください。「そんな方法はない」ならば、ないことを教えてください。(なるべく簡単な動作で行うように関数を使って考えていました。一つの関数で行えるようなやり方を知りたいです)

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 まず、関数に対する認識で誤解されているようなので、説明します。 関数は、その関数が入力されている自分自身のセルに何らかの値(関数によって計算された値)を表示することしか出来ません。 自分自身以外のセルへ値を入力することも、自分自身以外のセルの値を変更することも出来ません。 どこかのセルの値を+1するという動作をさせたいのなら、VBAを使用するしかありあません。 ということで、小数点以下がもっとも大きい値に+1した値を、どこかのセルに表示するとします。 元のデータがA1:A3にあるとして、結果を表示するセルに、 =INDEX(A1:A3,MATCH(MAX(MOD(A1:A3,1)),MOD(A1:A3,1),0))+1 と入力して、[Ctrl]+[Shift]+[Enter]で確定します。 (数式の両端に「{}」が付いて、配列数式になります。) 質問の例だと、「11.45」が表示されます。

hotiutiken
質問者

お礼

出来ました!!ちょっと難しかったのでコピーして使ってみました。望みどうりの答えが返ってきました。ありがとうございました

その他の回答 (1)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

そんな関数はありあmせんので一つの関数では無理です。 いろいろな関数を組み合わせて、計算用のセルを一つ使う必要があります。 まず小数点のみを抜き出します。これは計算用のセルなので別に表示させる必要はありません。 A1、A2、A3...に対象の数値が入っていると仮定してB1,B2,B3...に以下の式を =INT(RIGHT(A1,LEN(A1)-FIND(".",A1))) =INT(RIGHT(A2,LEN(A2)-FIND(".",A2))) ... 続いて小数点の中から最大値を抜き出して、その対象数値に+1した値を返します。 =INDEX(A1:A3,MATCH(MAX(B1:B3),B1:B3,0),0)+1

hotiutiken
質問者

お礼

INDEXってこんなときに使うのですか?小数のみの返し方が分かりましたので、大助かりです。ありがとうございました

関連するQ&A