ここから本文です

エクセルの関数についてです。 a1セルに 12,345,678 2 1.5 あいう と3つの数字...

pok********さん

2019/7/304:37:29

エクセルの関数についてです。
a1セルに
12,345,678 2 1.5 あいう
と3つの数字と文字列が入っているとして、
b1セルに
,区切りの数値が入っていた場合、文字列も他の整数も小数点のあ

る数も消して,区切りの数値だけにする関数をb1セルに入れたいのですが、そういった関数はありますか?

補足追加ですみません
スペースの大きさやカンマ付きの数値以外の数の個数などはまちまちです。

閲覧数:
29
回答数:
5
お礼:
50枚

違反報告

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

kky********さん

2019/7/308:01:09

>スペースの大きさやカンマ付きの数値以外の数の個数などはまちまちです。
スペースの大きさというのは個数の事なのか、全角のスペースという事なのかわからないので両方に対応させます。

カンマ付き数字の位置が不定、区切りのスペースも不定だと関数でやると、とんでもなく長い式になってしまいます。作業列を使う方がいいと思います。

D列からH列が作業列です。

D1:A列の文字列の全角スペースを半角に変換後、区切りのスペースを1個にする
=TRIM(SUBSTITUTE(A1," "," "))
注意: 知恵袋では全角スペースを入力しても半角になってしまいます。
=TRIM(SUBSTITUTE(A1,"全角スペース"," ")) です。

E1:最初の,の位置
=FIND(",",D1)

F1:最初のスペースの位置
=FIND(" ",D1)

G1:2番目のスペースの位置
=FIND(" ",D1,F1+1)

H1:3番目のスペースの位置
=FIND(" ",D1,G1+1)


B1:求める式
=IF(E1<F1,LEFT(D1,F1-1),IF(E1<G1,MID(D1,F1+1,G1-F1-1),IF(E1<H1,MID(D1,G1+1,H1-G1-1),RIGHT(D1,LEN(D1)-H1))))

&gt;スペースの大きさやカンマ付きの数値以外の数の個数などはまちまちです。...

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

2019/7/3 09:34:30

おかげさまでやりたいことが出来ました。
後出しにも誠実に答えていただき、ありがとうございました。

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

1〜4件/4件中

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

chi********さん

2019/7/309:07:34

どうせ回答見ながら 後付けで条件が増えていくパターンでしょう。

=MAX(INDEX(FILTERXML(SUBSTITUTE(ASC("<a><b>"&A1&"</b></a>")," ","</b><b>"),"//b"),0))

プロフィール画像

カテゴリマスター

gru********さん

2019/7/308:50:50

不定な「スペース」で区切られた文字列の中で、カンマを含む区切りを見つけ取り出して数値として整える?

私もkky********さんと同様にまず区切りのスペースをきちんと掃除することを推奨します。 =trim(substitute(文字列, " ", " ")) これを仮にC列としますね。

で、文字列を区切る時のセオリーとして、区切り文字を元(C列)の文字数分のスペースに置換します。substitute(C列, " ", rept(" ", len(C列)))

その中でカンマが何文字目にあるかを探して、元の文字数で割り算し整数に切り上げると、何番目の区切りにあるかがわかります。 ceiling(find(",", substitute(C列, " ", rept(" ", len(C列))))/len(C列),1) D列とします。

あとは同様に置換した文字列の、D列番目の区切りを取り出して余計なスペースを除去し、数値にすると。
=trim(mid(substitute(C列, " ", rept(" ", len(C列)))), (D列-1)*len(C列)+1, len(C列)))*1

不定な「スペース」で区切られた文字列の中で、カンマを含む区切りを見つけ取り出して数値として整える?...

mit********さん

2019/7/308:37:57

B1セルには次の式を入力すればよいでしょう。

=TRIM(SUBSTITUTE(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",100)),1,100*(LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1),",","")))))," ","")&MID(SUBSTITUTE(A1,",",REPT(" ",100)),100*(LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1),",","")))+100,100))*1000+LEFT(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",100)),100*(LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1),",",""))),100)),3)

non********さん

2019/7/305:07:01

区切りが半角スペースなら、
=LEFT(A1,FIND(" ",A1)-1)*1

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

  • 取り消す
  • キャンセル

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

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

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

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

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

閉じる

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

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

閉じる