Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 8.1 Pro : Excel 2013)
計算式から数字を抽出
投稿日時: 17/05/26 22:18:07
投稿者: kumomakoto

A1に以下の式が入っています。
=100+20
よって、120と表示されていますが、この100だけを抽出したいのです。
この抽出方法がありましたらご教示ください。
 
よろしくお願い致します。

回答
投稿日時: 17/05/26 23:02:44
投稿者: WinArrow
投稿者のウェブサイトに移動

ユーザー定義関数(VBA)ならば、対応できますが、
ヒントだけで、自分で作成できますか?
 
ヒント
標準モジュールに
Functionプロシジャを作成します。
引数をRangeオブジェクトにして、
数式を分解・つまり、演算子を特定文字列に変換→Split関数で分解すれば数字だけ抽出できます。

回答
投稿日時: 17/05/26 23:40:29
投稿者: Mike

「120」の表示からだけでは、表示式の中に「100」があるかどうか、あってもその位置は神様にしか分からないはずなのに、どうして「100」を取り出せると思うのですか?
ある、と分かっているのなら式も必要ないのでは?
というわけで、「奇妙奇天烈な質問だなぁ〜」が率直な感想です。
 
=IFERROR(MID(LEFT(FORMULATEXT(A1),FIND("+",B1)-1),2,99)*1,"ありません")
とでもしますか?

回答
投稿日時: 17/05/26 23:40:38
投稿者: 半平太

1例だけでは、仕様が明確とは言い難いですが、
こんなので希望通り出ないですか?
  ↓
=IFERROR(-LOOKUP(16^8,-MID(FORMULATEXT(A1),2,{1,2,3,4,5,6,7,8,9,10})),"")

回答
投稿日時: 17/05/27 09:45:06
投稿者: WinArrow
投稿者のウェブサイトに移動

>FORMULATEXT
 
このような関数がExcel2013からサポートsれたんですね・・・
今まで、ユーザー定義関数で対応していましたので、
これは便利だと考えます。
 
質問者さんへ
Excel2013以降のバージョン対応なので、
もし下位バージョンでも使うファイルならば、注意が必要です。

投稿日時: 17/05/29 16:03:54
投稿者: kumomakoto

皆様、回答有難うございます。
また、質問がわかりずらく申し訳ありません。
 
=100+20
 
というのは、例えでした。
 
A列には、計算式がはいっており、その計算式を分解して、左側の数字だけを抽出したいというのが質問の内容でした。
 
A列にはいっている数字は、=A+B というような組み合わせになっており、このAの部分だけ抽出したいのです。
よりまして、100の時もあれば、120、80の時もあります。
 
このような場合でもユーザー定義関数(VBA)でも可能でしょうか。
 
よろしくお願い致します。
 

回答
投稿日時: 17/05/29 16:27:19
投稿者: 半平太

あのー、バージョンが本当に Excel 2013 なら 
ユーザー定義関数は不要って話で進行しているんですけど。
 
バージョンはXL2013だけなんですか?
それとも、それより古いバージョンでも使うんですか?
 

回答
投稿日時: 17/05/29 16:48:22
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:
A列にはいっている数字は、=A+B というような組み合わせになっており、このAの部分だけ抽出したいのです。
よりまして、100の時もあれば、120、80の時もあります。
  
このような場合でもユーザー定義関数(VBA)でも可能でしょうか。
 

複数の演算子で構成されている数式であっても
可能です。
 

回答
投稿日時: 17/05/29 16:53:18
投稿者: Suzu

数式の中の「100」を検索したいって話であれば、
  検索で、検索対象「数式」、検索する文字列「100」 でも良いのかな。
 
と思ったら、意図が全然違うのですね。 失礼。

トピックに返信