2012-01-10 3 views
0

2つのワークシートがあります.1つは列(はい/いいえ)、もう1つは人のリストです。シート2のユーザーの姓がシート1にある場合は、その列に「はい」とマークします。これをスクリプト化する方法はありますか?その行の最後の名前は、その後、「はい」 として列のセルをマークし、シート2上の名前と一致した場合はシート1 異なるワークシートのセルを繰り返して文字列を解析します

  • 上行を通じて

    • 反復:理想的には私はこれをしたいと思います
  • +2

    データのサンプルを表示した場合は、より簡単になります。しかし、「VLOOKUP」式の使用に関するウェブ検索を行うことができます – JMax

    +1

    はい、「Joe Bloggs」や「Bloggs Joe」や「Bloggs、Joe」などの名前のサンプルを見る必要があります。あなたは名字と姓を区別していますか? – Reafidy

    答えて

    2

    これを行う最も効率的な方法は、VBAに頼る代わりにワークシート関数を使用することです。 「はい/いいえ」列に次の式を入力して入力します。ここで

    =IF(ISERROR(MATCH(A1,Sheet1!$A$1:$A$5,0)),"No","Yes") 
    

    A1あなたが探しているのSheet2からの名前であり、そしてSheet1!$A$1:$A$5はあなたを介して見てみたいSheet1の名前のリストです。

    EDIT:

    あなたはSheet1のリストの最初の単語だけを一致させたい場合は、あなたはまだ、配列数式を使用してこれを行うことができます。

    =IF(ISERROR(MATCH(A1,LEFT(Sheet1!$A$1:$A$5,FIND(" ",Sheet1!$A$1:$A$5)-1),0)),"No","Yes") 
    

    これは、Ctrl + Shift + Enterを押して配列数式として入力します。式は、数式バーの{...}の内側に表示されます。

    あなたの名前のリストが「最後の一び」の形式である場合、これは機能します。代わりに、名前が "Last、First"の形式である場合は、代わりに次のものを使用できます。

    =IF(ISERROR(MATCH(A1,LEFT(Sheet1!$A$1:$A$5,FIND(", ",Sheet1!$A$1:$A$5)-1),0)),"No","Yes") 
    
    +0

    唯一の問題は、名前(文字列の最初の単語のみ)を解析したいので、VBAに頼る必要があると思います。 –

    +1

    +1 Daveさんからファーストネームとラストネームを区別する方法がわかりましたので、私はこの式を調整することができます。 – Reafidy

    +0

    はい、各用紙にどのように名前が書式設定されているかご連絡ください。 – Excellll

    関連する問題