Страницы: 1
RSS
Вывод списка значений по поиску из 2х столбцов, Максимальная сложность
 
Добрый день!

Данность:
- Сотрудники (более 3х), заполняют форму, которая автоматически попадает в таблицу. (это уже есть)
- Таблица состоит из нескольких столбцов, основными из которых, для поиска, являются:
  Дата, Подписано договоров. Сдано договоров в работу.

Задача:
Сотрудник каждый день заполняет форму и в столбце "Подписано договоров" пишет, например: 2, r2011, r2012
- По этому триггеру необходимо внесение каждого из номеров договоров в новую строку отдельной таблицы

В другой день сотрудник в поле "Сдано договоров в работу" может внести, например: 3, r2011, r2012, r2013
- По этому триггеру в строке каждого договора проставляется дата сдачи договора в работу (которая берется из поля "Дата" первой таблицы)

Как реализовать не понимаю вообще.
Прошу о помощи. Спасибо
Изменено: Massacre - 23.08.2020 22:08:20
 
Цитата
Massacre написал:
Как реализовать не понимаю вообще.
Цитата
Massacre написал:
без примера
возможно как вариант макросом...(наверное)
Не бойтесь совершенства. Вам его не достичь.
 
Прикрепил пример.
Данные на листе1
Вывод данных нужен на лист2
 
Massacre, заполните желаемый результат на листе 2 пожалуйста
Не бойтесь совершенства. Вам его не достичь.
 
Вот так
 
del
Изменено: buchlotnik - 23.08.2021 18:22:02
Соблюдение правил форума не освобождает от модераторского произвола
 
Massacre,
Код
Sub fff()
Dim i As Long, n As Long, lr As Long
Dim cell As Range
Dim arr, arr2
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = Worksheets("Лист1")
Set sh2 = Worksheets("Лист2")
sh2.Range("A2:D123456").ClearContents
lr = sh1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lr
    arr = Split(sh1.Cells(i, 3), ",")
    For k = 1 To UBound(arr)
        lr2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1
        sh2.Cells(lr2, 1) = arr(k)
        sh2.Cells(lr2, 3) = CDate(sh1.Cells(i, 1))
        sh2.Cells(lr2, 2) = sh1.Cells(i, 2)
    Next k
Next i
For i = 2 To lr
    arr2 = Split(sh1.Cells(i, 4), ",")
    For k = 1 To UBound(arr2)
    Set cell = sh2.Columns(1).Find(arr2(k))
    If Not cell Is Nothing Then sh2.Cells(cell.Row, 4) = CDate(sh1.Cells(i, 1))
    Next k
    
Next i
End Sub

Изменено: Mershik - 23.08.2020 22:44:45
Не бойтесь совершенства. Вам его не достичь.
 
блин дико круто, большое спасибо, оба варианта офигенные
Единственное, что: возможно ли то же самое в гугл таблицах ?
 
Цитата
Massacre написал:
возможно ли то же самое в гугл таблицах ?
:D  
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Massacre написал:
Единственное, что
ну как бы там ни VBA, ни PQ; да и форум по Excel...
Соблюдение правил форума не освобождает от модераторского произвола
Страницы: 1
Наверх