Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5586 / 13645 ツリー ←次へ | 前へ→

【49979】エクセル関数 ロック 07/7/1(日) 23:05 質問[未読]
【49981】Re:エクセル関数 ichinose 07/7/1(日) 23:32 発言[未読]
【49983】Re:エクセル関数 ロック 07/7/1(日) 23:40 質問[未読]
【49984】Re:エクセル関数 ichinose 07/7/2(月) 0:04 発言[未読]
【49985】Re:エクセル関数 bykin 07/7/2(月) 0:14 発言[未読]
【49986】Re:エクセル関数 ロック 07/7/2(月) 0:28 回答[未読]
【49990】Re:エクセル関数 neptune 07/7/2(月) 13:39 発言[未読]
【49993】Re:エクセル関数 Lindy 07/7/2(月) 16:04 発言[未読]
【49994】Re:エクセル関数 ロック 07/7/2(月) 20:15 発言[未読]
【49998】Re:エクセル関数 bykin 07/7/2(月) 21:59 発言[未読]
【50000】Re:エクセル関数 neptune 07/7/2(月) 22:19 発言[未読]
【50007】Re:エクセル関数 わいわい 07/7/3(火) 13:37 発言[未読]
【50017】Re:エクセル関数 ロック 07/7/3(火) 19:33 発言[未読]

【49979】エクセル関数
質問  ロック  - 07/7/1(日) 23:05 -

引用なし
パスワード
   指定した値に近い程、大きいまたは小さい値を返すような関数はありますか?

ずっと探しているのですが、見つからないので質問させていただきました。

【49981】Re:エクセル関数
発言  ichinose  - 07/7/1(日) 23:32 -

引用なし
パスワード
   ▼ロック さん:
こんばんは。

>指定した値に近い程、大きいまたは小さい値を返すような関数はありますか?

↑どんな関数なのかわかりません。

1.5が指定した値なら、どんな結果を返す関数なのですか?

【49983】Re:エクセル関数
質問  ロック  - 07/7/1(日) 23:40 -

引用なし
パスワード
   >>指定した値に近い程、大きいまたは小さい値を返すような関数はありますか?
>
>↑どんな関数なのかわかりません。
>
>1.5が指定した値なら、どんな結果を返す関数なのですか?

すいません、説明不足でしたね。
例えば
ある数値が0〜2の間の値を取るとした時に、
引数として0.5を指定してやると
0.5に近ければ近い程大きな(または小さな)値を返すような関数が
あるのかどうかを知りたいです。

もしかしたら関数を使わなくても、良い方法があるのかもしれませんが・・・。

【49984】Re:エクセル関数
発言  ichinose  - 07/7/2(月) 0:04 -

引用なし
パスワード
   ▼ロック さん:
>>>指定した値に近い程、大きいまたは小さい値を返すような関数はありますか?
>>
>>↑どんな関数なのかわかりません。
>>
>>1.5が指定した値なら、どんな結果を返す関数なのですか?
>
>すいません、説明不足でしたね。
>例えば
>ある数値が0〜2の間の値を取るとした時に、
>引数として0.5を指定してやると
>0.5に近ければ近い程大きな(または小さな)値を返すような関数が
>あるのかどうかを知りたいです。

まだわかりません。
せっかく、例を提示されたのなら、「0.5に近ければ近い程大きな(または小さな)値を返す」ではなく、結果の例も提示してください。


ワークシート関数に
CEILING という関数がありますが、これでしょうか?

私には、ロック さんが求めている関数が何か分かっていないので
まったくの当てずっぽうですけど・・・。

一度 調べてみてください

【49985】Re:エクセル関数
発言  bykin  - 07/7/2(月) 0:14 -

引用なし
パスワード
   こんばんわ。

ある数値から引数の数値を引き算して、絶対値にするだけのことなんとちゃうのかな?
(この場合は近いほど小さくなる)
絶対値はABSでっけど・・・

ほな。

【49986】Re:エクセル関数
回答  ロック  - 07/7/2(月) 0:28 -

引用なし
パスワード
   こんばんわ。

その方法をうまく実現している関数はないものかと思いまして・・・。
Aが0.5、Bが0〜2の変数だとすると

ABS(A−B)

みたいな感じですよね。
ただもう少し値を分布のばらつきを抑えたいので
(ABS(A−B))^2

くらいのことをやりたいんですが、
エクセル関数にこのような値を出せるものってないですかねえ。。

>こんばんわ。
>
>ある数値から引数の数値を引き算して、絶対値にするだけのことなんとちゃうのかな?
>(この場合は近いほど小さくなる)
>絶対値はABSでっけど・・・
>
>ほな。

【49990】Re:エクセル関数
発言  neptune  - 07/7/2(月) 13:39 -

引用なし
パスワード
   ▼ロック さん:
>エクセル関数にこのような値を出せるものってないですかねえ。。
Helpを見れば判ることを、何故質問するのでしょう?
関数全て見ても高々300ちょいだと思ったが。。。

【49993】Re:エクセル関数
発言  Lindy  - 07/7/2(月) 16:04 -

引用なし
パスワード
   ▼ロック さん:
こんにちは
私は初心者ですが考え方だけだと思います。

関数は思ってる事を全てやってくれるものではなくて
やりたい事の一部を簡単にしてくれるパーツみたいなもの。

>(ABS(A−B))^2
>
>くらいのことをやりたいんですが、
>エクセル関数にこのような値を出せるものってないですかねえ。。

↑くらいの事で出来るのであれば、それが簡単なやり方なのではないでしょうか?
どうしても関数で・・・なら同じような事をユーザー定義関数で作ることになります
しかし、ネイティブに作られている(元々エクセルにある)関数の方が確実に
動作は早いと思います。

関数だけでは無理な(ループさせたり)場合にユーザー定義が有効だと思います。
用意されている関数をいかに有効に組み合わせて使うか・・・も大事な要素だと思いますよ^^

【49994】Re:エクセル関数
発言  ロック  - 07/7/2(月) 20:15 -

引用なし
パスワード
   >>neptuneさん
関数は全て見ました。特に統計学と数学のカテゴリをいろいろみたのですが、ちょっとわかりませんでしたね。

もしご存知なら教えて下さい。

>>Lindyさん
確かにそのとおりですね。
ユーザー定義関数を作る程ではないかな、と思っています。
もしそれと似たような動作をする関数があればと思って質問させて頂きました。
単語がわからなくて挫折した数学カテゴリの関数にありそうな気がして、皆さんなら分かる人がいるのかな、と。
ありがとうございます。

>こんにちは
>私は初心者ですが考え方だけだと思います。
>
>関数は思ってる事を全てやってくれるものではなくて
>やりたい事の一部を簡単にしてくれるパーツみたいなもの。
>
>>(ABS(A−B))^2
>>
>>くらいのことをやりたいんですが、
>>エクセル関数にこのような値を出せるものってないですかねえ。。
>
>↑くらいの事で出来るのであれば、それが簡単なやり方なのではないでしょうか?
>どうしても関数で・・・なら同じような事をユーザー定義関数で作ることになります
>しかし、ネイティブに作られている(元々エクセルにある)関数の方が確実に
>動作は早いと思います。
>
>関数だけでは無理な(ループさせたり)場合にユーザー定義が有効だと思います。
>用意されている関数をいかに有効に組み合わせて使うか・・・も大事な要素だと思いますよ^^

【49998】Re:エクセル関数
発言  bykin  - 07/7/2(月) 21:59 -

引用なし
パスワード
   こんばんわ。

>ただもう少し値を分布のばらつきを抑えたいので
>(ABS(A−B))^2
>くらいのことをやりたいんですが、

「もう少し」ってのはロックはんの恣意的な部分ですわな?
そんなんを勝手に判断してくれる関数なんてのは存在しまへん。
二乗しようが三乗しようがロックはんの好き勝手にやったら
ええんとちゃいまっか?

(ABS(A−B))^2で出来るんやったらそれで十分やと思うよ。
ほな。

【50000】Re:エクセル関数
発言  neptune  - 07/7/2(月) 22:19 -

引用なし
パスワード
   ▼ロック さん:
こんにちは
>もしご存知なら教えて下さい。
ご存知も何も、説明が理解できないのでわかりません。

が、
>ただもう少し値を分布のばらつきを抑えたいので
>(ABS(A−B))^2
だとすると、何故
(ABS(A−B))^2
を使用しないのかも理解できません。又、何故ユーザー定義関数の話
になるのかも理解できません。

で、提案ですが、希望する事を数式(Excelではなく数学的な奴)
を書いてみてはどうですが、わかる方も居られると思いますよ。
私はわからんでしょうけど。

>ただもう少し値を分布のばらつきを抑えたいので
もしかして、正規分布みたいなものが作りたいのかな????

ここはVBAの掲示板なんで、統計なら統計関係の、数学なら数学関係の
掲示板で質問した方がいいですよ。
私にはExcelに関係あるのかすらわかりません。

【50007】Re:エクセル関数
発言  わいわい  - 07/7/3(火) 13:37 -

引用なし
パスワード
   ▼ロック さん:

横から失礼します。(色々間違えていたので書き直し)
実は、私も先週同じように『近い値を求める』関数を調べたもので興味深くみていました。
私はABS(対象値-比較基値)で対応しました。
でこれ(二乗はグラフ近似式のR^2からですか?)なんですけど
>>>(ABS(A−B))^2
(A−B)^2 とすれば、さらに簡単になりますね。
ある範囲から基準値に最も近い物を探したいと言うなら
  mini_Diff = (Cells(1,Column).Value-基準値)^2
  mini_Value = Cells(1,Column).Value
  mini_Index = 1
  For i=2 to Last
   if (Cells(i,Column).Value-基準値)^2 < mini Then
     mini_Diff = (Cells(i,Column).Value-基準値)^2 '最も小さい差の値
     mini_Value = Cells(i,Column).Value      '一番近い値
     mini_Index = i                '一番近い値の所在
   End If
  Next i
と言う感じで(不要な値は消して)作るのですかね?


>>>neptuneさん
>関数は全て見ました。特に統計学と数学のカテゴリをいろいろみたのですが、ちょっとわかりませんでしたね。
>
>もしご存知なら教えて下さい。
>
>>>Lindyさん
>確かにそのとおりですね。
>ユーザー定義関数を作る程ではないかな、と思っています。
>もしそれと似たような動作をする関数があればと思って質問させて頂きました。
>単語がわからなくて挫折した数学カテゴリの関数にありそうな気がして、皆さんなら分かる人がいるのかな、と。
>ありがとうございます。
>
>>こんにちは
>>私は初心者ですが考え方だけだと思います。
>>
>>関数は思ってる事を全てやってくれるものではなくて
>>やりたい事の一部を簡単にしてくれるパーツみたいなもの。
>>
>>>(ABS(A−B))^2
>>>
>>>くらいのことをやりたいんですが、
>>>エクセル関数にこのような値を出せるものってないですかねえ。。
>>
>>↑くらいの事で出来るのであれば、それが簡単なやり方なのではないでしょうか?
>>どうしても関数で・・・なら同じような事をユーザー定義関数で作ることになります
>>しかし、ネイティブに作られている(元々エクセルにある)関数の方が確実に
>>動作は早いと思います。
>>
>>関数だけでは無理な(ループさせたり)場合にユーザー定義が有効だと思います。
>>用意されている関数をいかに有効に組み合わせて使うか・・・も大事な要素だと思いますよ^^

【50017】Re:エクセル関数
発言  ロック  - 07/7/3(火) 19:33 -

引用なし
パスワード
   >>bykinさん
確かにそうですね。
いろいろな指摘ありがとうございました。

>>わいわい さん
あなたのような方を待っていました。

偏差値のような山なりのグラフの縦軸の数値を取る、というような関数を
実際はXXX分布のXXX指数とかいう感じであるのかも、と思ったのですが、やはり自分で定義して作るしかないようですね。

ある範囲から基準値に最も近い値を探すならその方法でよいのではないでしょうか。全ての差の絶対値を求めて並び替えてから求めた方が処理は早くなるかもしれませんが。

>横から失礼します。(色々間違えていたので書き直し)
>実は、私も先週同じように『近い値を求める』関数を調べたもので興味深くみていました。
>私はABS(対象値-比較基値)で対応しました。
>でこれ(二乗はグラフ近似式のR^2からですか?)なんですけど
>>>>(ABS(A−B))^2
>(A−B)^2 とすれば、さらに簡単になりますね。
>ある範囲から基準値に最も近い物を探したいと言うなら
>  mini_Diff = (Cells(1,Column).Value-基準値)^2
>  mini_Value = Cells(1,Column).Value
>  mini_Index = 1
>  For i=2 to Last
>   if (Cells(i,Column).Value-基準値)^2 < mini Then
>     mini_Diff = (Cells(i,Column).Value-基準値)^2 '最も小さい差の値
>     mini_Value = Cells(i,Column).Value      '一番近い値
>     mini_Index = i                '一番近い値の所在
>   End If
>  Next i
>と言う感じで(不要な値は消して)作るのですかね?

5586 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free