• ベストアンサー

EXELでの指定桁の数字を返したい関数式

簡単な関数式だと思うのですが・・・すみません。 A1~Y1の合計数の1桁目(1の位)数字をZ1に返したい(表示したい)のですが・・・・・・ すっかり、忘れてしまいました。 確か、範囲を指定して、指定の欄に1の位なら「1」、少数第1位なら「-1」だった気がするんですが・・・・ 肝心の関数式がわからなくって、 困っています。宜しくお願いいたします。

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

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.2

>A1~Y1の合計数の1桁目(1の位)数字をZ1に返したい 方法は多種ありますが 結果が必ずプラスだけなら  =MOD(INT(SUM(A1:Y1)),10) で可能です。 SUM計算の結果、マイナス値もありうる場合は  =RIGHT(ROUNDDOWN(SUM(A1:Y1),0),1) となります。(返り値は文字列です)  結果を数値としたい場合は  =RIGHT(ROUNDDOWN(SUM(A1:Y1),0),1)*1  SUM(A1:Y1) ・・・・・・・A1~Y1を合計  ROUNDDOWN(数値,0) ・・・小数点第0位=整数第1位をより下位を切り捨て  RIGHT(文字又は数値,1)・・右から1文字を取り出し  ()*1 ・・・・・・・・・・文字形の数を数値形に変換 です! >指定の欄に1の位なら「1」、少数第1位なら「-1」 ?よく分かりませんが  ROUND   指定桁より1つ下位の桁を四捨五入  ROUNDUP  指定桁より1つ下位の桁を切上げ  ROUNDDOWN 指定桁より1つ下位の桁を切り捨て などの関数のことでしょうか? 例) A1 に 34.567 を小数点第2位を表示(3位を加工) =ROUND(A1,2)・・・・> 34.57 =ROUNDUP(A1,2)・・・> 34.57 =ROUNDDOWN(A1.2)・・> 34.56 A1 に 12345.67を整数第3位を表示(2位を加工) =ROUND(A1,-2)・・・・> 12300 =ROUNDUP(A1,-2)・・・> 12400 =ROUNDDOWN(A1.-2)・・> 12300

kayamama
質問者

お礼

詳しくありがとうございます。 もっと勉強します! 関数は難しいですね。せっかく勉強しても、使わないと記憶の穴から抜けていく・・・・・はは<渇

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

合計値の整数部分の1桁目を返します。数値としても使えます。 絶対値をとって、整数にして一番右を取り出しています。 =RIGHT(INT(ABS(A1:Y1)),1) 以下は質問の意味からはずれる?参考に書いておきます。 質問表題の『指定桁の数字を返したい関数式』を整数部分の桁指定とすると =MID(INT(ABS(A1:Y1)),LEN(INT(ABS(A1:Y1)))-指定桁+1,1) 指定桁に1の位なら1、10の位なら2を入れます。 >確か、・・・1の位なら「1」、少数第1位なら「-1」 を作ってみました。違いますよね。  下の関数で、指定桁を小数点からのプラス、マイナス方向への距離として入力すると望む値? 例えば、1の位は1、10の位は2、少数1位は-1、少数2位は-2とします。 10桁しかないのに100桁目としたらエラーです! =MID(A1:Y1,IF(ISERROR(FIND(".",A1:Y1)),LEN(A1:Y1)+1,FIND(".",A1:Y1))-(指定桁),1)

kayamama
質問者

お礼

=RIGHT(INT(ABS(A1:Y1)),1) ありがとうございます。うまくいきました!! 下の関数で、指定桁を小数点からのプラス、マイナス方向への距離として入力すると望む値? 例えば、1の位は1、10の位は2、少数1位は-1、少数2位は-2とします。 そう!!これです。記憶のどこかに残っていて・・・ しかし・・・ =MID(A1:Y1,IF(ISERROR(FIND(".",A1:Y1)),LEN(A1:Y1)+1,FIND(".",A1:Y1))-(指定桁),1) は・・・わかりません。 もっと勉強します!

回答No.1

Z1に以下を入力してください =VALUE(RIGHT(SUM(A1:H1),1)) これだと合計が123なら3を返しますが 123.4なら4を返してしまいます。 これじゃちょっと違うな・・・ ちょっと勉強してみまーす

kayamama
質問者

お礼

ありがとうございました! 「RIGHT」で解決しました!

関連するQ&A