2016-05-19 15 views
0

私は4つのセルのセットにデータを含む行を持っています。ポートコード、距離オーバーライド、到着時刻、および出発時刻。距離オーバーライド列は空白にすることができます。行の最後の値を見つける

考え方は、リストの最初と最後の欄に列FとGを挿入することです(ユーザーフォームのフィルタシステムにフィードして、今のところそれについて考えることをやめようとしています)。

Column example

列Fのセルは列Hに単純な参照私は正常に動作行の最後の値を取得するLast value=LOOKUP(2,1/(3:3<>""),3:3))からメソッドを用いています。残念ながら、最後の値は出発時ですが、私が必要とするのはポートコードです。 ...私は式中、いくつかの異なる場所に-3を追加しようとしましたが、私はそれが行くように見えることはできません

I 最後にポートコードを配置する列の順序を調整することができますしかし、私はそれがタスク仕様はこの順序を規定しているので、それを維持したいと思います。

誰でも手助けできますか?

+3

より良い使用 '= MATCH(1E + 99.3: 3) '最後の値が数値の場合' 'MATCH(" zzz "、3:3)'の場合(または 'MAX'が独立している場合)またこれははるかに速くなければなりません。そして、値を得るために( 'MATCH'は列番号を返します)' INDEX(3:3,1、MATCH(1E + 99,3:3)) ';)のような' INDEX'に入れてください; –

+1

@DirkReichelなぜあなたは答えとしてそれを置かなかったのですか?私が調整する唯一のものは、3:3を使用する代わりに、後で右の列にテキストが追加される場合に、範囲の両端に列の文字を追加します。 –

+0

ああ、優秀。私はそれが動作する理由を手がかりにしていません - 前にワイルドカードとして "zzz"が使われているのを見たことはありませんが、そうしています。あなたが答えとして投稿したいのであれば、私はそれに驚かされるでしょう。私は '= INDEX(3:3,1、MATCH(" zzz "、3:3))'を使って正解を得ています。 –

答えて

2

私のコメントは、完全な解決策よりも多くの提案でしたが、それだけで問題を解決する必要がある場合は、回答として投稿します。

行/列の最後のエントリを取得するには、高速な解決策があります。あなたのケースでは:それは最初のオプションまたは第二の選択肢のための検索語と同じか大きい値を見つけるまでMATCHは、単純にすべてのセルをループ:

get the last numerical value: =MATCH(1E+99,3:3) 
get the last string:   =MATCH("zzz",3:3) 

それも動作する方法は非常に簡単です検索語の後に「ソート」される完全な一致または文字列を見つけるまで。範囲内で一致する可能性がないと仮定すると、比較できる最後のセル(数値として)を指します。ただし、範囲内に何も見つからない場合(最初のオプションがなく、2番目のオプションがない場合)は、両方の式がエラーになります。また、=""(空の文字列)も文字列としてカウントされます。
その後、あなたは完全な用語を必要とするそれらのいずれかを持っていないために、全範囲の可能性がある場合:

=MAX(IFERROR(MATCH("zzz",A:A),0),IFERROR(MATCH(1E+99,A:A),0)) 

しかし、これが唯一の番号と最後の列を返しますが。また、値を取得し、あなたは、単にこのようなINDEX内にこれを置くことができますする:

=INDEX(3:3,1,MAX(IFERROR(MATCH("zzz",A:A),0),IFERROR(MATCH(1E+99,A:A),0))) 

あなたはまだ不明な点がございましたら、ちょうど頼む;)

+0

素晴らしいもの、ありがとう! –

+0

あなたは歓迎です:) –

関連する問題