2017-11-29 11 views
-1

質問に答えていると思われる他のページを検索しました。シート間のif-then式を使用してこれを実行しようとしましたが、複数のセル/列でうまく動作しません。私はそれを理解することはできません。Mac用Excelで別のシートのデータに基づいて名前リストを1つのシートに自動入力2016

誰かがクエリを提案したことがわかりました(ただし、これはGoogleでの使用であり、Excelでは動作しません)。これを最善の方法で行うための提案はありますか?

私はExcelでコンサルタントデータベースを作成しようとしています。私たちはプロジェクトでコンサルタントを使用し、さまざまなコンサルタントがX個のジョブを実行します。会社名

B1 - - 特殊1

C1 - 特殊2

D1 - 特殊3

シート1は、次のデータ

A1とマスターリストであろう

(など - おそらく最高10の専門店)、次に

L1 - キーコンタクト

M1 - メール1

N1 - メール2

O1 - メール3つの

P1 - メール4

Q1 - 以前のプロジェクト

など(携帯電話番号などがあります)

シート2以降は、専門分野に基づいて作成されます。

シート2をArchitectsといいます。名物の一つが、「アーキテクト」と一致した場合、私はそれが私の建築シート(シート2)上で以下を提供したいと思います:

A1会社名

B1キーの接触

C1 Email1を

D1 EMAIL2

E1 Email3

F1 Email4

G1以前のプロジェクト

誰かが自動作成する方法を理解できますか?マスターシートが変わると、他のシートを常に更新する必要はありません。

+2

ようこそ、私は明確な質問を見つけることができませんでした(これは私にとっては "コード"ではありません)。あなたの投稿を修正し、解決する質問を定義できますか? > [How to Ask](https://stackoverflow.com/help/how-to-ask) –

+0

をお読みください。無料のコーディングを探していません。アプローチする具体的な提案を探しています。 –

+0

"会社"ごとに "マスターリスト"シートがありますか、または "A1"は "行1"などですか? – YowE3K

答えて

0

潜在的な「クエリ」シートイベントこのコードは)あなたが「照会」に使用する実際のシートのコードモジュールに貼り付けする必要があります。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub 
    On Error GoTo ReEnableEvents 
    Application.EnableEvents = False 
    Dim lastRow As Long 
    Dim r As Long 
    Dim c As Long 
    Dim newRow As Long 
    Dim Speciality As String 
    Speciality = Range("A1").Value 
    'clear existing data 
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row 
    If lastRow > 2 Then ' Assume headings are on row 2 
     Rows("3:" & lastRow).ClearContents 
    End If 
    'find new data 
    newRow = 2 
    With Worksheets("MasterList") 
     For r = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row 
      For c = 2 To 11 ' loop through the speciality columns 
       If .Cells(r, c).Value = Speciality Then 
        newRow = newRow + 1 
        Cells(newRow, "A").Value = .Cells(r, "A").Value 
        Cells(newRow, "B").Value = .Cells(r, "L").Value 
        Cells(newRow, "C").Value = .Cells(r, "M").Value 
        Cells(newRow, "D").Value = .Cells(r, "N").Value 
        Cells(newRow, "E").Value = .Cells(r, "O").Value 
        Cells(newRow, "F").Value = .Cells(r, "P").Value 
        Cells(newRow, "G").Value = .Cells(r, "Q").Value       
        Exit For 
       End If 
      Next 
     Next 
    End With 
ReEnableEvents: 
    Application.EnableEvents = True 
End Sub 

これは、「クエリ」シートのセルA1は、あなたが(すなわち探したい値であることを前提としていそのシートの2行目に見出しがあり、3行目以降に結果が表示されます。

私はそれをテストしていませんが、必要なものに近いはずです。

+0

注:すべてのコードがMac版Excelで有効かどうかはわかりません。それはかなり基本的なので、私は**あなたがそれに何らかの問題があるとは思わない**と思う。 – YowE3K

+0

すごくありがとう。 –

関連する問題