0

私はこれまで使用してきた優れた Excel 数式を持っていますが、もう少し充実した耐久性のあるものを、職場のデザイナー グループに配布したいと考えています。残念ながら、負の数も扱っているため、最小値を使用しても機能しません。

したがって、textbox1 が 13、textbox2 が 4、textbox3 が -1 の場合、テキスト ボックス 3 が点灯するか、-1 がゼロに最も近いため、選択したアクションが実行されます。

本当に役立つというわけではありませんが、Excel の数式は次のようになります: =INDEX(A61:A78,MATCH(MIN(INDEX(ABS(A61:A78),0,1)),INDEX(ABS(A61:A78),0) ,1),0))

助けてくれてありがとう!

4

3 に答える 3

3

これが「LINQで楽しむ」方法です

Func<string, bool> isDecimal = s => { decimal temp; return decimal.TryParse(s, out temp);};
TextBox closestToZero =
    (from tb in this.Controls.OfType<TextBox>()
        where isDecimal(tb.Text)
        orderby Math.Abs(decimal.Parse(tb.Text))
        select tb)
        .FirstOrDefault();

if (closestToZero != null)
    MessageBox.Show(closestToZero.Text);
于 2010-09-02T00:51:57.120 に答える
2

Math.Abs()テキスト ボックスを反復処理し、各ボックス内の各数値の絶対値を計算し、表示された最小の数値とそれが表示されたテキスト ボックスのインデックスを追跡します。絶対値を調べてみてください。

于 2010-09-02T00:50:47.700 に答える
1

これまでに見つかった最小値と関連するテキストボックスを保存しながら、テキストボックスを単純に反復することができます。

于 2010-09-02T00:37:32.970 に答える