Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Поиск самой нижней/правой ячейки с данными, еще ниже/правее есть ячейки с формулами, которые не надо учитывать
 
Суть в определении самой нижней/правой ячейки с данными, полученными в результате вычисления формул.
Нижняя и правая ячейка с результатами вычислений может меняться в зависимости от исходных данных.
Ниже и правее есть ячейки с формулами, которые не надо учитывать.
Код
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
LastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
и UsedRange не подходят
Пробовал копировать на другой лист специальной вставкой, все равно задает границы скопированного диапазона
Как их можно определить?
В примере этот диапазон Е22-АВ41 (имеет заливку)
Спасибо.
Поиск всех диапазонов чисел в массивах, чтобы этот диапазон был уникальным для максимального количества массивов
 
Доброго времени суток, Уважаемые!!!
Столкнулся с такой задачей:
Имееются массивы с последовательными, целочисленными элементами, а также состоящие из одного числа.
Массивов может быть сотни
Нужно найти все диапазоны чисел или 1 число во всех массивах, чтобы этот диапазон или 1 число встречалось в максимальном количестве массивов.
А также найти диапазоны чисел, которые не встречаются ни в одном из массивов.

Помогите пожалуйста или подскажите путь для решения. Уже и подзабыл VBA, в связи со сменой сферы деятельности
Изменено: ts-79 - 02.03.2019 12:40:35
Экспорт данных (фото) из Excel в Word
 
Добрый день, уважаемые!

Возникла задача выгрузки в Word анкетных данных на сотрудника, формируемых в Excel.
Соответствующих тем много, и в принципе экспорт текстовых и табличных данных реализовал.
Загвоздка состоит в выгрузке фотографии, которая в Excel формируется с помощью этого приема.

Прошу помощи поскольку своих познаний не хватает
Файлы удалены: превышен максимально допустимый размер. [Модераторы]
Изменено: ts-79 - 05.04.2016 22:47:42
DTPicker-ы пропали с юзерформ., не может загрузить объект
 
Добрый день уважаемые!
Имеется файл с кучей юзерформ, на которых имеются кроме всего прочего и элементы DTPicker.
Этот файл прекрасно работал до сегодняшнего дня. А сегодня при открытии файла вышла ошибка, что не может загрузить объект, поскольку он недоступен на данной машине и выдает ошибку на DTPicker-ы. И сами DTPicker-ы пропали с юзерформ.
И в Toolboxe пропал этот элемент.
Как можно решить данную проблему и восстановить этот элемент?

Переделывать все под текстбоксы очень долго получится поскольку DTPicker-ов много, да и разные условия и проверки запрограммированы на разных юзерформах.
Задать размерность массива
 
Не соображу как задать размерность новому массиву.
Имею
Код
With Sheets("1")
        lr = .Cells(Rows.Count, 2).End(xlUp).Row 'последняя строка
        ST = .Range("B9:B" & lr).Find(iName).Row 'Номер нужной строки
        lc = .Cells(ST, Columns.Count).End(xlToLeft).Column 'Последний столбец нужной строки
     Arr = Range(.Cells(ST, 13), .Cells(ST, lc)).Value 'Задаю массив из 1 нужной строки и нескольких столбцов (lc-13, может быть много). В строках количество столбцов разное.
 End with
Теперь данные из этого массива мне нужно выгрузить в 3 столбца. В настоящее время реализовано поячеечным копированием, и занимает время, если столбцов оказывается много.
Код
       For i = 13 To lc Step 3
            .Cells(x, 1) = Sheets("1").Cells(ST, i)
            .Cells(x, 2) = Sheets("1").Cells(ST, i + 1)
            .Cells(x, 3) = Sheets("1").Cells(ST, i + 2)
            x = x + 1
       Next i

Хочу оптимизировать и сделать через массив.
Код
    ReDim arr2(1 To UBound(Arr), 1 To 3)
        For i = 1 To UBound(Arr) Step 3
            arr2(x, 1) = Arr(1, i)
            arr2(x, 2) = Arr(1, i + 1)
            arr2(x, 3) = Arr(1, i + 2)
            x = x + 1
       Next i
Но выгружает только первые 3 значения.
Я понимаю, что неправильно задаю ReDim arr2(1 To UBound(Arr), 1 To 3)
Но не знаю как правильно его задать. Есть ли другое обозначение конца массива вместо UBound(Arr), которое бы определило конец массива не по "вертикали" или нижний, а по "горизонтали или правый"? Не знаю как правильно.
Надеюсь понятно объяснил.
Копирование листов и удаление макросов макросом
 
Доброго дня уважаемые!
Прошу подсказку в решении очередной задачи.
Задача состоит в выгрузке отчетов в новую книгу.
Однако исходный текст выгружаемых листов содержит макросы типа:
Код
Private Sub Worksheet_Activate()
Sheets("ОСН").Calculate
Sheets("1,11").Calculate
End Sub 
Такие конструкции введены в связи с тем что, в книге отключен авторасчет формул, поскольку это очень сильно грузит ЦП и занимает много времени.
Так вот при копировании листов с отчетами в новую книгу происходит активация листа с этими исходным текстом, но т.к. некоторых листов (например "ОСН" ;)  уже нет в новой книге, то происходит ошибка.
На сайте Дмитрия (The_Prist) нашел код, который удаляет макросы в теле листа.

Макрос работает если в исходных тестах макросы деактивированы апострофами.
Проблема состоит в том что, не могу после копирования листов в новую книгу, перед активацией новой книги запустить код по удалению макросов, а уж потом активировать новую книгу.
Подсчитать количество отмеченных Checkbox-ов
 
Код
Dim iContr As MSForms.Control, k As Long   
For Each iContr In Me.Controls
     If TypeOf iContr Is MSForms.CheckBox and iContr.Value = True Then 
            k = k + 1 
     End If 
Next


Вот таким кодом пытаюсь подсчитать количество отмеченных Checkbox-ов на форме, но выдает ошибку. Подскажите как исправить ошибку.
группировка CheckBoxов на форме в виде фильтра
 
Доброго дня уважаемые.
Подскажите пожалуйста можно ли организовать на форме группировку CheckBoxов наподобие фильтра дат?
Если можно то с помощью какого контрола?
Изменено: ts-79 - 14.03.2014 09:05:18
проверка хронологии вводимых в textbox'ы дат
 
Доброго дня, уважаемые!
Имеется форма с 60 textbox-ами, т.е. 30 пар в которые вносятся даты начала и конца периода.
На событие выхода из textbox применяется функция проверки правильности заполнения дат (в Модуле 1).
И хочу применить к этому же событию вторую функцию которая проверяет, чтобы вводимая дата не входила в ранее введенные периоды.
Т.е. допустим в первую пару ввели период 01.01.2000 - 01.01.2003.
Затем при введении в следующий textbox даты входящей в этот период, например 01.01.2001, функция удаляла эту дату с выводом Сообщения.

Написанная, в рамках моих познаний, функция, работает через раз или вообще не работает (в модуле2). Собственные попытки докопаться до причины не привели к успеху. Подскажите пожалуйста в чем ошибка?

P.S. TextBoxы переименованы в DTB
P.S.2 Порядка ввода дат не имеется, т.е даты могут вводится хаотично, т.е. сначала на стр.222 потом 123 потом 444 потом снова 222 и т.д.
Изменено: ts-79 - 13.03.2014 15:33:59
задать несколько несмежных столбцов в NoDups
 
В этой теме имеется макрос NoDups, предложенный ZVI, выводящий из столбца уникальные значения в ComboBox.
Код
Скрытый текст
и затем при активации userform задаем столбец из которого извлекаются уникальные значения и передаем в ComboBox.
Код
  Set Rng = Sheet1.Columns(1) 
  ComboBox1.List = NoDups(Rng)
 
Не получается извлечь уникальные столбцы из нескольких несмежных столбцов (AY,BB,BE,BH,BK,BN,BQ).
Если задать в таком виде:
Код
Set Rng = Sheets("1").Range("AY9:AY" & lastrow, "BB9:BB" & lastrow)    
то выводятся уникальные всего диапазона Range("AY9,BB" & LR)
Перепробовал различные варианты, но что-то не получается.
Подскажите пожалуйста как можно задать несмежные диапазоны в данной ситуации?
Подвязать Target к значению элемента ActivX "поле со списком"
 
Аппетит как говорится приходит во время еды.
Имеется в А1 выпадающий список.
И при выборе/изменении значения из этого списка вызываются макросы и команды. На эту же ячейку завязаны и все формулы на листе.
Список большой, а окошко только на 8 строк. Листать не совсем удобно
Вставил элемент ActivX "поле со списком" и подвязал к А1. Там и список можно на весь экран выставить и поиск мягкий.
При выборе значения в "поле со списком" элемента ActivX это значения отображается в А1, но чтобы запустить макросы и команды надо и в А1 передернуть это значение.
Можно ли привязать все это дело к элементу ActivX "поле со списком"?

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Text = "" Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
       iName = Target
    Call opit
    Call obl_pech
    ' Call
    Sheets("ПКС").Calculate
    End If
End Sub
 
Оптимизация цикла в цикле
 
Подскажите пожалуйста как можно оптимизировать цикл в цикле.
Есть Лист "osn" с 250 строками и другой лист "vz" с более чем 2000 строками.
Если на листе "vz" в столбце 11 или К имеется определенный text, то значение из столбца 5 или Е этой строки необходимо проставить на Лист "osn" в столбец 16 или P напротив той же ФИО, что и на лист "vz". ФИО в обоих листа в столбце 2 (В).

Строк содержащих text относительно не много от 50 до 100 но они могут быть в разных местах таблицы (в зависимости от сортировки). И приходится прогонять весь цикл из более чем 2000 строк.

Пробовал загнать номера строк, содержащих text в массив, а потом этот массив в цикл для второго списка, но скорости выполнения это не добавило.
вот собственно сам код:

Код
Sub vzi()
Dim LR, Rw, i, j As Long
LR = Sheets("osn").Cells(Rows.Count, "B").End(xlUp).Row         '=250
Rw = Sheets("vz").Cells(Rows.Count, "B").End(xlUp).Row          '>2000
    For j = 9 To LR              '=250
        For i = 2 To Rw         '>2000
            If Sheets("vz").Cells(i, 2).Value = Sheets("osn").Cells(j, 2).Value _
            And Sheets("vz").Cells(i, 11).Value = "text" Then ' сравниваются ФИО на 2-х листах и наличие texta
                Sheets("osn").Cells(j, 16).Value = Sheets("vz").Cells(i, 5).Value
                Sheets("osn").Cells(j, 17).Value = DateAdd("m", 6, Sheets("vz").Cells(i, 9).Value)
            End If
        Next i
    Next j
End Sub
 
Изменено: ts-79 - 20.02.2014 18:24:45
вывод массива в msgbox
 
Доброго дня уважаемые!

Из некой таблицы, при выполнении нескольких условий данные записываются в массив (х строк, 3 столбца)
На лист эксел массив выгружается нормально, но хотел выгрузить этот массив в msgbox
Нашел такой код: (других не нашел)

Код
    Msg = ""
    For j = 1 To UBound(ar2, 1)
        For k = 1 To UBound(ar2, 2)
          Msg = Msg & ar2(j, k) & " "
        Next k
        Msg = Msg & Chr(13)
    Next j
 

Но в msgbox после данных массива добавляются пустые строки столько же сколько строк в исходной таблице, и кнопки ОК не видать.

Как сделать что бы эти пустые строки не отображались в msgbox

Весь код ниже
Скрытый текст
Как в combobox вывести массив из 4 столбцов и n строк
 
Добрый день уважаемые!

На Userformе имеется 2 comboboxa, в каждом из которых уникальный список ФИО (из столбцов "В" двух разных листов "о" и "р"  ;)  .
При выборе значения в одном из них, в 3-м comboboxе необходимо вывести значения столбцов C,D,E строк где ФИО в столбце "В" совпадает с ФИО из comboboxa.
А затем в textboxы 1 и 2 вывести значения столбцов C и D выбранного в 3-м comboboxе значения.
Под это дело пытался переделать код выдающий в combobox значение 1 столбца, но что-то не получается.
Код
Код
Private Sub ComboBox1_Change()
    Dim i As Long, a(), n&
    n = 1
    With Sheets("î")
        a = Range("b2:e" & .Cells(.Rows.Count, 1).End(xlUp).Row).Value
    End With
    ReDim B(1 To UBound(a), 1 To 3)
    For i = 1 To UBound(a)
        If a(i, 1) = Me.ComboBox1.Value Then
            B(n, 1) = a(i, 2)
            B(n, 2) = a(i, 3)
            B(n, 3) = a(i, 4)
            n = n + 1
        End If
    Next i
    If n > 0 Then
        ReDim Preserve B(1 To n, 1 To 3)
        ComboBox8.List = B
    Else
        ReDim a(0 To 0): ComboBox8.List = a
    End If
End Sub
 
ругается на эту строку
Код
  ReDim Preserve B(1 To n, 1 To 3)
Как записать формулу ДАТАМЕС в VBA
 
Суть вопроса в названии.
Не могу найти как записать в VBA условие =ЕСЛИ(ДАТАМЕС(I2;6)<СЕГОДНЯ();ДАТАМЕС(I2;6);"")
Заполнение TextBox в UserForm в формате дата
 
Нашел в архиве аналогичную тему, но продолжить её не получается. Поэтому пришлось создать новую.
Это как раз то, что мне надо было. В теме в архиве решена задача:
Цитата

чтобы даты, введённые как 150912 или 15.09.12 или 15092012 или 15.09.2012 превратились в нужный нам формат 15.09.2012.
Хотел еще добавить условие чтобы даты введенные как 15/09/12 или 15/09/2013 или 15,09,12 или 15,09,2013 превратились в формат 15.09.2012.
Для этого в код

Скрытый текст
Добавил следующие случаи

Код
Case 8 And Right(.Value, 3) Like "*/*"
 .Value = Mid(.Value, 1, 6) & 20 & Mid(.Value, 7, 2) 
Case 8 And Right(.Value, 3) Like "*,*"
 .Value = Mid(.Value, 1, 6) & 20 & Mid(.Value, 7, 2)
Но как не колдовал конечного результата не смог добиться. Подскажите в чем загвоздка?
Изменено: ts-79 - 01.03.2014 11:04:33
Создать список для ComboBoxа по условию
 
Добрый день уважаемые!
Прошу помочь в реализации следующей задачи:
При выполнении 2-х условий (1- значение в столбце B совпадает со значением в ComboBoxе FIO, 2- значение в столбце D = "не выполнено" )  значение столбца С нужно включить в список для ComboBox3.
Написал такое:


Код
Sub DV(F As MSForms.ComboBox)
Dim i As Long, LastRow As Long, L As Long, S As Range
    With Sheets("2")
        LastRow = .Cells(Rows.Count, 2).End(xlUp).Row
        For i = 2 To LastRow
            If .Cells(i, 2).Value = k1.FIO.Value And .Cells(i, 4).Value = "не выполнено" Then
            '.Cells(i, 3).Value = S
            
            End If
        Next i
    End With
 F.AddItem S
End Sub
 

Подскажите пожалуйста как все найденные значения включить в список. Пробовал через массив, тоже что-то не получилось?
Изменено: ts-79 - 24.01.2014 15:32:51
аналог ВПР в VBA одной строкой
 
Добрый день уважаемые!
Суть проблемы в следующем:

Имеется UserForm с различными элементами. После заполнения данные из UserForm заносятся в соответствующие ячейки последней строки Листа2.
Однако в столбцы C и D необходимо подтянуть данные из столбцов  D и Е Листа3, в которых значение в столбце В соответствует значению в Combobox (FIO).

Вот кусок кода, где вместо ВПР(FIO.value;Лист3!$B$2:$E$10;3 или 4;0) надо вставить данные из столбцов  D и Е Листа3, которые соответствуют значению
Код
 With Sheets("Лист2")
            Dim LastRow As Long
            LastRow = .Cells(Rows.Count, "B").End(xlUp).Row + 1
            .Cells(LastRow, "B").Value = Me.FIO.Value
            '.Cells(LastRow, "C").Value =ВПР(FIO.value;Лист3!$B$2:$E$10;4;0)  
       '.Cells(LastRow, "D").Value =ВПР(FIO.value;Лист3!$B$2:$E$10;3;0)  
            .Cells(LastRow, "E").Value = Me.DTPicker2.Value   
            .Cells(LastRow, "F").Value = Me.DTPicker3.Value   
            .Cells(LastRow, "G").Value = Me.DTPicker3.Value - Me.DTPicker2.Value    
      .......................   
End With 
Подскажите пожалуйста как это можно сделать, если вообще можно?
Изменено: ts-79 - 21.01.2014 13:45:12
Копирование групп ячеек на другой лист с траспонированием
 
Добрый день! Помогите пожалуйста с макросом по копированию ячеек.
Имеется таблица вида: (Лист1)

1      А      ДатаА11      ДатаА12      ЗначА1      ДатаА21      ДатаА22      ЗначА2
2      Б     ДатаБ11      ДатаБ12      ЗначБ1     ДатаБ21      ДатаБ22      ЗначБ2       ДатаБ31      ДатаБ32      ЗначБ3
3      В     ДатаВ11      ДатаВ12      ЗначВ1      
и т.д.
Столбцы C-F(скрыты) на Листе1 и не учитываются.
Количество таких групп (ДатаХ1       ДатаХ2      ЗначХ)  для каждого из АБВ может быть разным от 1 и до 100-150. Также и количество значений АБВ может увеличиваться и убавлятся.

На другом листе (ПКС) в ячейке А1 - выпадающий список содержащий значения А,Б,В и т.д.
И при выборе какого-нибудь значения из А1 (ПКС), например Б, необходимо данные с Листа1 привести к виду:
ДатаБ11      ДатаБ12      ЗначБ1    
ДатаБ21      ДатаБ22      ЗначБ2      
ДатаБ31      ДатаБ32      ЗначБ3
начиная с 30 строки этого листа, предварительно удалив данные предыдущего копирования
Изменено: ts-79 - 18.02.2014 16:23:51
Копирование строк на другой лист при условии совпадения значений со значением в другой ячейке
 
Самостоятельные попытки доработать макрос, предоставленный Юрий М не увенчались успехом, как ни старался.
Поэтому прошу помощи экспертов.
Начну сначала.  
Первоначально задача состояла  скопировать с листа «вок» на «Лист2» строки, в которых значение в столбце В совпадает со значением в ячейке А1 (выпадающий список) другого (3-го листа) «пк». Перед копированием Лист2 очищается от значений предыдущего копирования.
Юрий М любезно выполнил просьбу. Макрос отлично работает при изменении значения  в выпадающем списке (Лист «пк» ячейка А1) и если это значение встречается на листе «вок» .  
Код
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Target = "" Then Exit Sub  
   If Not Intersect(Target, Range("A1") Is Nothing Then  
      iName = Target  
      Call SSSS ‘ выполняет перенос с листа «вок» на Лист2  
   End If  
End Sub
 
Код SSSS - копирования совпадающих строк на лист2
Код
Public iName As String
Sub SSSS() 'SSSS
Dim LastRow As Long, Rw As Long, Rv As Long
Dim x As Long, i As Long, Arr()
    x = 1
    With Sheets("вок")
        LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        Arr = Range(.Cells(2, 1), .Cells(LastRow, 13)).Value
    End With
    ReDim arr2(1 To UBound(Arr), 1 To 13)
    For i = 1 To UBound(Arr)
        If Arr(i, 2) = iName Then
            arr2(x, 1) = Arr(i, 1)
            arr2(x, 2) = Arr(i, 2)
            arr2(x, 3) = Arr(i, 3)
            arr2(x, 4) = Arr(i, 4)
            arr2(x, 5) = Arr(i, 5)
            arr2(x, 6) = Arr(i, 6)
            arr2(x, 7) = Arr(i, 7)
            arr2(x, 8) = Arr(i, 8)
            arr2(x, 9) = Arr(i, 9)
            arr2(x, 10) = Arr(i, 10)
            arr2(x, 11) = Arr(i, 11)
            arr2(x, 12) = Arr(i, 12)
            arr2(x, 13) = Arr(i, 13)
            x = x + 1
        End If
    Next
    With Sheets("Лист2")
        Rw = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        Range(.Cells(2, 1), .Cells(Rw + 1, 13)).ClearContents
        .Cells(2, 1).Resize(x - 1, 13).Value = arr2
        .Calculate
    End With
  End Sub


Однако,  макрос выдает ошибку 1004, если это значение А1 не встречается на листе «вок».
Условие о том, что значения из выпадающего списка А1 не обязательно должны присутствовать на листе «вок» я не отразил. (виноват, дурак, исправлюсь)

Кроме того, имеется лист «пр», с которого также необходимо скопировать строки, в которых значение в столбце В совпадает со тем же значением в ячейке А1 (выпадающий список), но только на другой «Лист3».  Эту часть я планировал сделать сам по аналогии.
Сделал, и  макрос работает, но только если имеются совпадения одновременно в обоих листах «вок» и «пр». Но если нет совпадения хоть на одном из листов («вок» или «пр») также дает ошибку 1004.
Перепробовал различные варианты:


Код
Private Sub Worksheet_Change(ByVal Target As Range) 
   If Target = "" Then Exit Sub  
   If Intersect(Target, Range("A1") Is Nothing Then  
      Call S ‘S - просто очистка диапазона на листе2 (от предыдущих копирований)  
   Else  
      iName = Target  
      Call SSSS  
   End If  
End Sub
 
Попытка через проверку совпадений
Private Sub Worksheet_Change(ByVal Target As Range)
Код
Private Sub Worksheet_Change(ByVal Target As Range) 
   If Target = "" Then Exit Sub  
   If Application.CountIf(Worksheets("вок").Range("B:B"), Worksheets("пк").Range("A1")) = 0 Then MsgBox "нет совпадений"   
   Else 
   If Not Intersect(Target, Range("A1")) Is Nothing Then  
      iName = Target   
          Call SSSS ‘выполняет перенос с листа «вок» на Лист2   
   End If  
End Sub
Код
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Target = "" Or DD Then Exit Sub  
   If Not Intersect(Target, Range("A1") Is Nothing Then  
      iName = Target  
      Call SSSS ‘выполняет перенос с листа «вок» на Лист2  
   End If  
End Sub  

Код
Где DD в модуле    
Function DD()  
   If Application.CountIf(Worksheets("вок"  .Range("B:B"  , Worksheets("пк" .Range("A1"  ) = 0 Then MsgBox "нет соответствий"  
   DD = True  
End Function
Код
[/CODE] Эти попытки хоть какие-то действия давали (но не те, что нужно)   
Было еще куча других попыток, которые выдавали ошибки.   
Предполагаю, что в связи с введением условия, что значения из выпадающего списка А1 не обязательно должны присутствовать на листе «вок» конструкция вида: 

[CODE]Private Sub Worksheet_Change(ByVal Target As Range) 
   If Target = "" Then Exit Sub  
   If Intersect(Target, Range("A1"  ) Is Nothing Then  
   ………..  
   ………..  
End Sub
Код
не будет работать, и должно быть что-то другое.   Прошу помочь и указать где, что и как сделать? Или где почитать?
Изменено: ts-79 - 30.12.2013 19:46:16 (Не могу вытащить некоторый текст из кода)
как почистить XLAM в VBA
 
В поисках необходимого макроса для решения задач приходилось скачивать различные файлы с макросами. В результате в приложении VBA окне проводника появились каких-то три XLAMа. 2 из них с паролем, 3 без пароля. Может кто знает что это и как от них избавится? Касперский не ругался. В приложении скан, на котором виден код 3-го хлама.
Ускорить сохранение файла
 
Добрый день!
Вопрос такой.
Имеется файл Ексел (база) с кучей формул (несколько десятков тысяч), при сохранении которого можно успеть выйти покурить или приготовить и выпить кофе. Но это не критично.
Проблема в том, что при открытом вышеупомянутом файле, сохранение других файлов Ексел занимает такое же время как и сохранение базы, хотя не имеет никакого отношения к нему. Можно ли как-нибудь устранить эту проблему?
Изменено: ts-79 - 24.12.2013 13:22:54
подсчет количества текстовых значений по нескольким условия
 
Доброго времени суток, уважаемые знатоки Ехселя.
Обращаюсь к вам, поскольку решить самостоятельно на первый взгляд простую задачу не смог. 3 дня ищу решение, пол интернета перерыл, перепробовал различные функции. Все безтолку. Макросами не владею, может кто поможет в реализации стандартными функциями.

Условия таковы:
Имеются два листа с поощрениями и наказаниями с данными за несколько лет, кол-во строк переваливает за 1000, и постоянно дополняется.
В каждом поля: ФИО, должность, вид поощрения/наказания, дата.
Задача такова:
На листе "табл" имеется таблица, в которую надо свести количество поощренных/наказанных сотрудников в зависимости от должности, кол-во неоднократно поощренных/наказанных, затем по видам поощрений и наказаний. Все это расчитывать за определенный период, который указывается в ячейках B1-начало периода и B2-конец периода этого же листа.

Заранее благодарю откликнувшихся.
Изменено: ts-79 - 16.07.2013 16:03:05
Страницы: 1
Наверх