2016-06-13 3 views
0

私は列を持っています、列Aとしましょう。数字のリストが含まれています。これらの数字は、その後、私は、その列の最後の非空白ゼロ以外の正の値を見つけたい。空白の様々な数(すなわち=(some_condition_is_met、「」IF、値)が続きます。列/範囲内の最後の空白でない非ゼロの正の値を見つける方法を教えてください。

例:

Column A 
    0.00 
    0.00   
    0.00 
    0.00 
    15.00 
    -5.00 
    0.00 
    blank 
    blank 
    blank 

私は式が空白、およびゼロ、負の値を無視し、この場合には15.00を返したい。

私は可能であれば、配列数式を使用しないでしょう。

私が見た他の解決策はあまり洗練されていません。最後の非ゼロ値または非ブランク値のみを検出します。

私はこれを理解できません!

+0

あなたは([最後の行を見つけることに、この質問]を見てみましたhttp://stackoverflow.com/questions/11169445/error-in-finding-last-used- cell-in-vba) –

答えて

0

は、可能であれば配列式を使用しないことをお勧めします。」という理由を知りたいと思います。

「配列式」によって、キーストロークの組み合わせを有効にするためにCTRL+SHIFT+ENTERのキーストロークの組み合わせを必要とする式を意味する場合は、ここでそのように使用する必要はありません。

しかし、「配列式」のより一般的な(そして間違いないほど正しい)定義を、個々の基準で渡された配列内のすべての要素を処理する必要がある式として暗示していた場合定義の場合、AGGREGATE,SUMPRODUCTなどの関数を「配列式」として定義しますが、CSEを必要としないにもかかわらず、問題の性質上、このような設定を回避することはできません。

このように、渡される範囲を最小限に保つことは非常に重要です。ここではA1:A10を使用していますが、必要に応じて変更することはできますが、参照するセルが1つ増えるごとに余分な計算が行われるため、あまりにも大きくならないように注意してください。必須。

=LOOKUP(1,0/(0+A1:A10>0),A1:A10)

よろしく

+0

私は前者(すなわちCSEの式)を指していました。 – Tom

+0

なぜこのような公式を避けたいのですか? –

+0

職場での開発基準では許可されていません。許可よりむしろ許しを求めるのは簡単かもしれない:) – Tom

関連する問題