Gizport
1 回答
0
Share (facebook)
82
view
全般

エクセルで、絶対値で並べた時の順位を求めようとしています。以下のマク...

エクセルで、絶対値で並べた時の順位を求めようとしています。以下のマクロを製作したのですが、上手く行きません。どこが間違っているのでしょうか?Public Function TEST5(xr As Range) Dim n As Integer, d() As Double, i As Integer, j As Integer, p() As Integer, q() As Integer, r() As Integer n = xr.Rows.Count ReDim d(n, 2), p(n), q(n), r(n) For i = 1 To n d(i, 1) = xr(i) If d(i, 1) < 0 Then d(i, 2) = -1 * d(i, 1) ElseIf d(i, 1) > 0 Then d(i, 2) = d(i, 1) Else d(i, 2) = 0 End If Next i For i = 1 To n For j = 1 To n If d(i, 2) > d(j, 2) Then p(i) = p(i) + 1 ElseIf d(i, 2) < d(j, 2) Then q(i) = q(i) + 1 ElseIf d(i, 2) = d(j, 2) Then r(i) = r(i) + 1 End If Next j Next i TEST5 = r(5)End Function000112の時は上手く行くのですが、0001-12になると、5番目の同順位の数が1になってしまいます。どうも正負が別々に比較されているようですが、対象となるd(4,2)もd(5,2)も共に0.1と出ます。よろしくお願いします。
Yahoo!知恵袋 5675日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
こんばんわ。このソースで動いていませんか?どうなりたいかが、見えないですが・・・。ちなみに・・・For i = 1 To nd(i, 1) = xr(i)If d(i, 1) < 0 Thend(i, 2) = -1 * d(i, 1)ElseIf d(i, 1) > 0 Thend(i, 2) = d(i, 1)Elsed(i, 2) = 0End IfNext iはFor i = 1 To nd(i, 1) = xr(i)d(i, 2) = ABS(d(i, 1))Next iという書き方もできますよ。ABS < 絶対値を求める関数です。
Yahoo!知恵袋 5675日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
102
Views
質問者が納得イメージ的にはこのような感じですね。=SUM(($B11=$C$5:$C$586)*(IF(($R$5:$R$586>0)+($W$5:$W$586>0),1)))と入力して、ctrlキーとshiftキーを押しながらenter
4921日前view102
全般
108
Views
質問者が納得入力は3.5mmステレオミニプラグです。パソコンやコンポのヘッドホンジャックは、その規格に対応します。従ってその接続で音が出ます。音が出ない蹴ればどちらかの製品におかしなところがあるという意味合いになります。http://www.logitech.com/ja-jp/speakers-audio/home-pc-speakers/devices/3128このスペックの中のインターフェイス。入力にきちんと記載してあります。
4929日前view108
全般
105
Views
質問者が納得インテル マトリクス・ストレージ・マネージャーからドライバを取り出して、更新させているのですか。Intel(R) 5 Series/3400 Series Chipset Family 4 port Serial ATAStorage Controller - 3B20 だけを更新。Intel(R) 5 Series/3400 Series Chipset Family 2 port Serial ATAStorage Controller - 3B26 は、更新せずに放置。BIOSでAHCI に変更し起動...
4955日前view105
全般
109
Views
質問者が納得いいですね。。。。。
4960日前view109
全般
110
Views
質問者が納得私のパソコンと似たような作りですね。私の場合、i7 950とGTX460(オーバークロックで800MHz仕様)です。これで、ベンチマークがHighで3400位です。そこそこ快適に動くレベルです。普通にゲームはできるでしょう。ただ、サクサクとまではいきません。フレーム落ちはしますし、厳しい部分もあります。サクサク動かすならGTX580クラスのもっと良いグラフィックボードが必要です。
4959日前view110

関連製品のQ&A