ここから本文です

エクセルで複数整数の有効桁数(一般的な有効桁とは意味合いが違うかもしれませんが...

thi********さん

2017/4/1216:46:02

エクセルで複数整数の有効桁数(一般的な有効桁とは意味合いが違うかもしれませんが。。)
を調べてその中からMAX桁数の抽出がしたいです。

例えば①14560、②25600、③35000と3つの整数があるとして、私の抽出したい有効桁数とは、
頭から何桁目まで0以外の数字が入っているか、つまり、①なら4桁、②なら3桁、③なら2桁となります。
やりたい事は数式を利用して①~③の最大桁である"4"だけを反映させたいです。
セルA1:14560 セルB1:25600 セルC1:35000としてセルD1に自動で4を表示したい。

わかりづらい説明かもしれませんが、お力かして頂きたく宜しくお願いいたします。

閲覧数:
118
回答数:
4
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

all********さん

2017/4/1217:30:29

セル位置は異なりますが
B1
=FIND("E", TEXT(A1, "0."&REPT("#",15)&"E+00"))-2
C1
=MAX(B1:B10)

セル位置は異なりますが
B1
=FIND("E", TEXT(A1,...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/4/13 08:34:03

多数の方にご回答いただきありがとうございます。
また、途中で"0"が入る場合について明記できておらずすみません。
おっしゃる通り間に"0"が入った場合は、その"0"も桁に含めて反映させたかったです。大変助かりましたありがとうございます。

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

アバター

ID非公開さん

編集あり2017/4/1218:19:36

当然、10100だったら3桁という事ですよね?
オール0なら0桁ということなのでしょうか。
たぶん不要なのでしょうけれども、小数・負数にも対応してみました。

配列数式(CTRL+SHIFT+ENTERで確定)で

=MAX(INDEX(LEN(IFERROR(ABS(A1:C1)/10^INT(LOG(ABS(A1:C1))+1),0)),0),2)-2

と入力してください。

プロフィール画像

カテゴリマスター

2017/4/1217:53:24

そういう時は、10480のように「途中にゼロがあるけど4桁だよね」、という例も入れないと、思わぬ失敗をします。

数値を 0.##########E+00 みたいな指数表記にすると、10480は1.048E+04、25600は2.56E+03、35000は3.5E+04のようになります。text関数でそういう表記の文字列を生成し、必ず存在するEの位置をfind関数で検索、E自身と小数点の分を引き算すれば、4、3、2と計算できました。ここまではallsun3sanさんが素晴らしいです。

あとは、一括して計算するよう配列として整えて、max関数にぶち込めばおしまい。D1の数式は

=max(index(find("E", text(A1:C1, "0.###############E+00"))-2, 0))

空欄はゼロ扱いで"0.E+00"だから1ですね。まぁ実害はないです。

maronさん

2017/4/1217:16:12

=MAX(INDEX(FIND(0,A1:C1&0)-1,))

=MAX(INDEX(FIND(0,A1:C1&0)-1,))

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる