2017-01-16 2 views
0

У меня есть таблица данных с различными месяцами в разных столбцах, каждая строка имеет уникальный идентификатор (в данном случае - имя).Выпадающий список в Excel для отображения данных с другого листа

Есть ли способ, чтобы я мог на другом листе иметь раскрывающийся список, чтобы выбрать дату и лист, а затем вернуть все записи из данных с этими датами?

Вот ссылка на очень базовой версии типа данных, я работаю с: https://docs.google.com/spreadsheets/d/1LgTKxXuQ9hdq-ruJWcto7A002ks4R2koGx0vtiHZHXQ/edit?usp=sharing

+1

Да, есть способ сделать это. Вы сами что-то пробовали? – harun24hr

+0

Да, я пробовал. Я провел все утро. Я попробовал сначала сводную таблицу, но я не смог получить результат, который я получил. – danjswade

+0

Поделитесь некоторыми образцами данных и ожидаемым выходом. Было бы лучше, если бы вы могли поделиться образцом файла excel. Некоторые ввод и вывод. – harun24hr

ответ

0

Я придумал этот маленький код:

Option Explicit 


Private Sub Worksheet_Change(ByVal Target As Range) 

Dim lastRow, targetCell, sourceRng, cell, nameRng, startRng, ddownCell As Range 

Set ddownCell = Worksheets("Sheet2").Range("B1") 
Set sourceRng = Worksheets("Sheet1").Range("C2:O10") 
Set nameRng = Worksheets("Sheet1").Range("A2:A10") 
Set startRng = Worksheets("Sheet1").Range("B2:B10") 
Set targetCell = Worksheets("Sheet2").Range("A5") 

If Not Application.Intersect(ddownCell, Range(Target.Address)) Is Nothing Then 

With Worksheets("Sheet2")        ' 
    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' 
    If lastRow > 3 Then         'clears the content of previous search 
     .Range("A5:B" & lastRow).ClearContents   ' 
    End If            ' 
End With            ' 

For Each cell In sourceRng 
    If cell.Value = ddownCell.Value Then 
     targetCell.Value = nameRng.Rows(cell.Row - 1).Value 
     targetCell.Offset(0, 1).Value = startRng.Rows(cell.Row - 1).Value 
     Set targetCell = targetCell.Offset(1, 0) 
    End If 

Next cell 
End If 
End Sub 

Имена листов и диапазонов ячеек корректируются по образцу, который вы опубликовали, и его необходимо отрегулировать.

Этот код должен быть вставлен в лист 2 в редакторе VBA.