dポイントプレゼントキャンペーン実施中!

お世話になります。
Excel2013を使用しています。

A列には含有量が記載されています。
0.3
0.300以上
0.5以上~0.8以下
0.3~0.8

数字は可変で他にも色々記載があります。
この数字たちを全て下のように少数点第二位まで揃えたいのですが、方法はありますでしょうか?
0.3とかであれば関数で対応出来るのですが、以上や~など入っていると
どうしようもなく...どうかよろしくお願いします。

0.03
0.30以上 
0.50以上~0.80以下
0.30~0.80

質問者からの補足コメント

  • うーん・・・

    ちなみに例えば【0.3以下】が含まれるものに関しては下記のように関数を作成しているのですが
    =IF(LEN(A2)-FIND("以下",A2)=1,TEXT(LEFT(A2,3),"0.00")&"%以下",A2)
    【以下】という文字が含まれない場合【#VALUE】となってしまいます。
    COUNTIFやISNAでエラー判定しても上手く表示がされなかったり、【#VALUE】となるため
    なにかアドバイスをいただければと思います。
    よろしくお願いします。

      補足日時:2019/04/03 17:13
  • ありがとうございます。
    行いたいのは数字と文字列の組み合わせの時に少数点を表示させる方法になります。

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/04/03 18:15
  • 少数点はあったりなかったりします。
    例) 2   →2. 00%
    1~3 →1.00%~3%

    No.3の回答に寄せられた補足コメントです。 補足日時:2019/04/03 22:16
  • 少数点第二位までに、%は必ず付けたいです。

    No.4の回答に寄せられた補足コメントです。 補足日時:2019/04/04 09:09
  • 色々考慮いただいてありがとうございます。
    全角数字は非対応で大丈夫です。
    ちなみにAND(46≦χ≦57,χ≠47)を初めてみて、
    調べてもわからなかったので、使い方含め教えていただけると
    ありがたいです。

    No.6の回答に寄せられた補足コメントです。 補足日時:2019/04/04 11:26
  • 解説ありがとうございます。
    ただ、これをどのようにして使うのがわかりません。
    セルにどのように入力すれば良いのでしょうか?

    No.7の回答に寄せられた補足コメントです。 補足日時:2019/04/04 14:03
  • お忙しいところありがとうございます。
    どうぞよろしくお願いします。

    No.9の回答に寄せられた補足コメントです。 補足日時:2019/04/06 10:01
  • 申し訳ありません!!
    前回の通知に気付けておりませんでした!
    試してみたのですが、以下2点気になることがあります。

    ①小数点第三位までの表示を小数点第二位までに変えたいです
    ②四捨五入させずに、数字をそのまま表示させることはできますでしょうか?

    よろしくお願いします。

    No.18の回答に寄せられた補足コメントです。 補足日時:2019/04/19 13:16
  • すみません、また遅くなってしまいました。
    指標値セル>大丈夫です!

    No.38の回答に寄せられた補足コメントです。 補足日時:2019/05/30 08:41

A 回答 (45件中11~20件)

非数字文字中左 =IFERROR(MATCH(1,INDEX(1-数字文字判定A-数字文字判定B,,),0)+数字文字最左-1,LEN(Sheet1!A1))



非数字文字2郡目最右位置を 返します。


此では なし方を、
変えています。


1-数字文字A-数字文字B
此で 第2群非数字文字位置が、
何処か 判ります。


勿論、
これまでどおり、

工夫の上 連番を、
足す事により、
求めても いいのですが、

最右の 1が、
何番目か 判れば、
いいのですから、

MATCH構文で 検査させても、
いい事に なります。


尚、
MATCH 構文では、
エラーに なる場合が、
ありますから、

エラー発生を、
IFERROR構文で プリフェッチして、
エラー発生時の 予想値を、
返させています。

尚、
本式では 中間部で、
INDEX 構文を 持ちいていますが、

此は 定冠詞を、
付けるようなもの、

目立った 作用は、
ないが、
必要なものです。


数字文字中左 =MATCH(TRUE(),INDEX(NOT(ISERROR(VALUE(MID(RIGHT(Sheet1!A1,LEN(Sheet1!A1)-非数字文字中左+1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(RIGHT(Sheet1!A1,LEN(Sheet1!A1)-非数字文字中左+1)))),1)))),,),0)+非数字文字中左-1

此は 数字文字第2群最左位置を、
返します。

エラープしフェッチを 設定して、
いないのと、

中間位置までの 文字列切り出し方に、
工夫が あるだけで、

今までに 出だ内容の、
関連ばかりだと 思います。



数字文字判定C =NOT(ISERROR(VALUE(MID(RIGHT(Sheet1!A1,LEN(Sheet1!A1)-数字文字中左+1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(RIGHT(Sheet1!A1,LEN(Sheet1!A1)-数字文字中左+1)))),1)))) RIGHT(Sheet1!A1,LEN(Sheet1!A1)-数字文字中左+1) Sheet1!$A$1 0 0 1 Sheet1!

此は 数字文字判定Dと、
合わせて、
数字文字最左以右にある、
数字文字位置を 露わに、
します。


此方では 0〜9までを、

数字文字判定Dでは、
小数点位置を、

探しています。


数字文字判定D =MID(MID(Sheet1!XFD35,数字文字最左,数字文字最右-数字文字最左+1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(MID(Sheet1!XFD35,数字文字最左,数字文字最右-数字文字最左+1)))),1)
    • good
    • 0
この回答へのお礼

丁寧な解説ありがとうございます。
読んでみたのですが高度すぎてついていけず
nouble1さんはすごい人なんだなぁと改めて再認識しました。
ちなみにこれを%を取ることは出来るのでしょうか?
大変なようであればこのままで大丈夫ですが
簡単なようであればご教示いただけたらと思います。
よろしくお願いします。

お礼日時:2019/05/19 16:54

数字文字最左


=MIN(INDEX((1-数字文字判定)*10^10+COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!A1))),,))

此ですが、
右側を 見極めるのは、
最大を 取れば、
いいので 楽なのですが、

左側と なれば、
多少 手を加え、
工夫して、
浮き彫りにする 必要が、
出ます。


どういう事かと 言えば、

左と いう事は、
昇順連番を かけた場合、
最小値を取る事に、
なりますが、

該当外が 0ですので、
此のままでは 上手くは、
ありません。


其所で 工夫ですが、

此には、
色々な やり方が、
あるのですが、

此では 私か、
過去 開発した、
様式を 持ちいています。


数値文字判定では、
数値文字位置が 1、
非数値文字位置が 0、
ですので、

1から 引けば、
反転します。


反転すれば、
数値文字位置が 0,
非数値文字位置が 1,
に なりますので、

各々に対し、
極大値を かけ、
最小値から かけ離させ、

昇順連番を 足せば、
其の最小値が 数値文字最左位置を、
示してくれます。


数字文字判定A
=NOT(ISERROR(VALUE(MID(MID(Sheet1!A1,数字文字最左,LEN(Sheet1!A1)-数字文字最左+1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!A1)-数字文字最左+1)),1))))

此は 数値文字判定に対し、
少し 変えています。


数値文字判定では、
文字列の 先頭から、
判定させていますが、

此方では、
数値文字の 最左位置から、
文字列を 切り出し、
判定し 返させています。


尚、
此は 論理値で、
返しています。


数字文字判定B
=(MID(MID(Sheet1!A1,数字文字最左,LEN(Sheet1!A1)-数字文字最左+1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!A1)-数字文字最左+1)),1)=".")

此は 数値文字判定Aの、
心臓で、
数値文字判定Aでは 漏れる、
「.」位置を 調べています。


数値文字判定A+数値文字判定B
と すれば、
数字文字最左以右の 数字文字位置が、
判るように なっています。
    • good
    • 0

少しづつ 書き込んで、


いきますね。


数字文字判定 =INDEX(NOT(ISERROR(VALUE(MID(Sheet1!A 1,COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!A1))),1))))+(MID(Sheet1!A1,COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!A1))),1)="."),,)

ですが。


MID(Sheet1!A1,COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!A1))),1)

此は 以前、
お伝えしましたね、

文字列を 一文字ずつに、
分けています。 …①


VALUE(①)
は 0〜9までなら、
エラーに しませんので、
此を 利用し、 …②

NOT(ISERROR(②)) …③
と して、

数値かの 判定に、
利用してます。


しかし、
此だけでは 「.」を、
見付けられません。


其所で、
①="."
と 判定させて、

③と 足し合わせて、

数値文字なら 1、
非数字文字なら 0、
と 返させています。


次に、
数字文字最右 =MAX(INDEX(数字文字判定*COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!A1))),,))

ですが。


COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!A1)))

此で 1〜A1セル文字数の、
連番を 生成しています。


先出通り 数字文字判定では、
数字文字なら 1を、
非数字文字なら 0を、
返します。


勿論、
0×n=0
1×n=n
ですから、

1からの 連番を、
順に かければ、

数字文字だった 箇所のみ、
かけた 連番が、
残ります。


残った 数字の中で、
最大が 数字文字の、
最右の 位置と、
判るのです。
    • good
    • 0

お待たせして ばかりで、


済みません。
    • good
    • 0

すみません、未だ掛かります。

    • good
    • 0

すみません、未だ掛かります。

    • good
    • 0

済みません、


お待ちください。
    • good
    • 0

済みません、


今暫し お時間を、
頂戴しますね。
    • good
    • 0

》 この数字たちを全て下のように少数点第二位まで揃えたい


》 0.03
》 0.30以上
》 0.50以上~0.80以下
》 0.30~0.80
七面倒臭いけど、添付図のように、黄色部の作業範囲を設けたら如何?
A1: =IF(C1<0.1,C1,IF(C1<>"",TEXT(C1,"0.00"),"")&IF(E1="JP","以上","~"))&IF(D1<>"",TEXT(D1,"0.00")&IF(E1="JP","以下",""),"")
「少数点の表示形式について」の回答画像27
    • good
    • 0

解りました、


光栄です、
有難うございます。


では、
準備に 掛かりますね。
    • good
    • 0
この回答へのお礼

助かりました

ありがとうございます。
お時間あるときでかまわないので、よろしくお願いします。
nouble1さんにはいくら感謝しても足らないです。

お礼日時:2019/04/30 13:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!