2016-09-02 4 views
0

私はブックから重複した値を削除しようとしていますが、同じエントリーが残っています。重複する値の削除 - 先行する日付

enter image description here

私は(下)VLOOKUPを使用して試してみたが、それは完全一致ではないのですから、私は私が本当にしたい値を返さない、TRUEを使用して、削除するために、別のステップを取るだろう先行する年のない値。

=VLOOKUP(F2,F2:F657,1,TRUE) 

すべてのご協力をいただければ幸いです!

+0

ベース:配列数式の詳細についてはこちらを、Microsoftのウェブサイトを見ていますあなたがそれを削除することができるように知ることができるでしょう、あなたはそれを保つことができるので、知りたいのですか? –

答えて

1

どのようにこのようなものについては、次のように

{=IFERROR(VLOOKUP(F2,F2:F657,1,FALSE),INDEX(F2:F657,MATCH(F2,SUBSTITUTE(F2:F657,LEFT(F2:F657,7),""),0)))} 

これは動作します:VLOOKUPは、一致が見つかった場合(1)最初に、チェックします。そうでない場合は、(2)最初の7文字(年+スペース+ハイフン+スペース)を削除してリスト内の一致を検索しようとします。したがって、上記の解決策では、最初の7文字を常に削除する必要があると想定しています(この解決方法は、削除する必要がある文字の長さに柔軟性がありません)。

さらに、上記の解決策では、ExcelのバージョンがIfError(Excel 2007以降が必要)を認識していることを前提としています。それ以外の場合は、完全なIf式で置き換えることができます。

上記の式は配列式として入力する必要があることに注意してください。したがって、式を入力するには、Ctrl + Shift + Enterを入力する必要があります。今年のないものは年と1に存在する場合ので、あなたがしたい場合は、以下の、あなただけ、気にあなたのコメントにhttps://support.office.com/en-us/article/Guidelines-and-examples-of-array-formulas-7d94a64e-3ff3-4686-9372-ecfd5caa57c7

enter image description here

+0

ありがとう、これは非常に役に立ちますが、私がこのようにしなかった理由は、先導的な年の値が実際に私が保持したいものであるということです。先導年がなければ、それなし。それは私の問題がどこに来るのか、私が先導的な年で価値を保持し、先導年が見つからないときにそれらを使用できるようにするロジックを考えることができないからです。 –

+1

次に、上記の数式を逆にし、2番目の部分( 'index/match')を最初に移動し、' vlookup'を 'IfError'式の末尾に移動します(' = IFERROR(INDEX(F2: (F2:F657、LEFT(F2:F657,7)、 "")、0))、VLOOKUP(F2、F2:F657,1、FALSE))} ' – Ralph

+0

ありがとうございます援助! –