Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 712 След.
Подстановка значений из другой таблицы
 
Опоздал чуть :)
Но если данных много - то одна массивная UDF будет побыстрее миллиона  встроенных.
Подстановка значений из другой таблицы
 
Доброго. Как по мне - так проще написать одну свою функцию. Так годится?
Хотя нет, если в строке может быть только одно совпадение - то ищите по строке где и берёте правее.
Вот для Q2:
Код
=ЕСЛИОШИБКА(ИНДЕКС(A$1:F$19;СТРОКА();ПОИСКПОЗ(Q$1;$A2:$F2;0)+1);"")
Изменено: Hugo - 18 Авг 2018 16:18:40
Виснет комп при обработке большого массива данных около 500 тыс срок. Формула СУММЕСЛИ и т.д.
 
Ну на безрыбье и рак... Пока это единственный файл в теме :)
Виснет комп при обработке большого массива данных около 500 тыс срок. Формула СУММЕСЛИ и т.д.
 
Порекомендую никуда не уходить :)
Вот вчера делал, там правда суммировать не нужно было, чуть подправил. Поменяйте данные на свои, попробуйте.
P.S. Тут сравнение идёт по трём столбцам - по названию, адресу и лекарству, если брать только что-то одно, то конечно будет быстрее. Но не на много...
Изменено: Hugo - 16 Авг 2018 23:12:39
Выпадающий список из динамических значений
 
Если этот список "проверка ввода", и чисел не особо много (и короткие!), то можно макросом формировать строку. Но если она получится длиннее 255, то будут проблемы при открытии файла. Тогда проще делать на диапазонах.
При смене ОС перестал работать макрос
 
Принтер тоже уже установили? Точно?
VBA. Сравнение и удаление данных с двух листов и переносом результата на 3 лист
 
Если работа не разовая/редкая, и если данных очень много - тогда конечно нужен макрос. Но чтоб его писать/отлаживать, нужны файлы. Не по картинкам ведь...
VBA. Сравнение и удаление данных с двух листов и переносом результата на 3 лист
 
Пока суд да дело - можно начать с "текст по столбцам" по s, далее ВПР() или СЧЁТЕСЛИ) и мануально что угодно.
Выпадающий список с возможностью поиска внутри списка
 
Цитата
nkd2006 написал:
чтобы в ячейке например c1 - был список со столбца "c" с листа данные, в ячейке с2 - список столбца "b" с листа данные, в ячейке c3 был список столбца "f" с листа данные.
- там в коде есть уже описывавшаяся выше строка
Код
NomStolbDan = ActiveCell.Column

Вот её и используйте. Только естественно вместо ActiveCell.Column нужно брать ActiveCell.Row
Изменение формата файла с .xlsm на xlsx с последующим удалением исходного файла, VBA
 
Цитата
Василька написал:
Буду точным, открыть и сохранить файл с другим расширением
- буду придирчивым - тут нет точности. Например - открываем блокнотом (неважно зачем, просили), сохраняем с другим расширением :)
Да и даже можно Экселем открыть и сохранить с другим расширением, не меняя формат - если делать это кодом.
Изменено: Hugo - 10 Авг 2018 14:52:15
Изменение формата файла с .xlsm на xlsx с последующим удалением исходного файла, VBA
 
Цитата
Василька написал:
я хочу макросом запущенным из одного файла менять расширение файлов
- зачем это написали? Будьте точны, а то ведь можно и так сделать :)
У константы типа Double появилась запятая.
 
Цитата
Леонид Коршак написал:
как это связано?
- тогда тоже явной связи не было, хотя через буфер обмена влияло.
Это я к тому что может быть влияет какая-то совершенно другая программа, может какой менеджер памяти или ещё что... Ну как вариант.
У константы типа Double появилась запятая.
 
А помните как нам всем когда-то гадил Скайп? А PuntoSwitcher или как там его... Не пользуюсь.
Объединение макросов: перебор книг в директории и удаление всех макросов, VBA
 
Чтоб удалять по-толстяковски - нужен доступ к объектной модели проектов VBA, а этого обычно нет.
Проще ведь сохранить как xlsx и всё.
Пользовательская функция Индекс
 
Проблема была в cell.
Ну и в s, как выше уже говорили.
Вообще я был уверен что Find в UDF не работает. Т.е. в процедуре, или в функции работает, а в UDF нет. Но как вижу - работает себе... Может с 2010 версии поправили, или я что-то путаю?
Изменено: Hugo - 5 Авг 2018 20:37:19
Как добавить нули к числам, задача добавить пропавшие нули в базе данных паспортов
 
Цель в том, чтоб открыть в Экселе? Вы это серьёзно?
Ну тогда могу сказать что это недостижимо, если строк более чем может принять Эксель. Открывайте в Access, хотя нет, это ведь не совпадает с целью... :)
Пользовательская функция Индекс
 
И что, обе заработали?
Как скопировать строку заданное число раз, указанное в ячейке данной строки
 
goldenbrown244,  не понятно что хотите сделать, но исходя из написанного и не особо меняя код:
Код
Selection.EntireRow.Copy

Вот так попробуйте копировать после
Цитата
goldenbrown244 написал:
выделено было 3 ячейки
Разность двух массивов с помощью коллекции
 
Цитата
Hostyle написал:
Ну там просто нет вывода результата на лист
- а кроме того нет такого файла, всех трёх листов, как следствие непонятно что вообще с чем сравниваете... Ну а ошибку я назвал.
Разность двух массивов с помощью коллекции
 
Ключ в коллекции должен быть текстовым, т.е string
P.S. а пример не работает вообще, и править его лень... Да и зачем?
Изменено: Hugo - 4 Авг 2018 22:11:00
Выпадающий список с возможностью поиска внутри списка
 
nkd2006,  там в коде наверняка есть что-то вроде address, вот его и проверяйте. Точнее не скажу, ибо Вы не сказали о чём вообще идёт речь.
копирование и вставка масива ячеек при совпадении условия, вставка разных массивов дынных в зависимости от значения в ячейке
 
Копирование сделал, макросом.
С защитой не получится - ибо защитить ячейку можно, но тогда в ней ничего нельзя выбирать.
Подправил файл на две области. Но у меня глючит, иногда начинает плодить объекты, причину не нащупал.
Изменено: Hugo - 4 Авг 2018 22:28:25
Сумма ячеек Excel по 2 условиям при условии что одно общее, Сумма ячеек Excel по 2 условиям при условии что одно общее
 
Код Кузмича тоже отработает на примере нормально, но я ищу "прибыль", а он слепо идёт от "итого". Смотрите сами...
Сумма ячеек Excel по 2 условиям при условии что одно общее, Сумма ячеек Excel по 2 условиям при условии что одно общее
 
Вот добавил поиск сводной для этого примера:
Код
Sub tt()
    Dim x&, t$, i&, k
    Const s$ = "СВОДДНАЯ ТАБЛИЦА"

    On Error Resume Next
    x = Cells.Find(s).Row
    On Error GoTo 0
    If x > 0 Then
        With CreateObject("Scripting.Dictionary")
            .comparemode = 1

            For i = 3 To x - 1
                If Len(Trim(Cells(i, 1))) > 0 And Len((Cells(i, 4).Text)) = 0 Then
                    t = Cells(i, 1)
                Else
                    .Item(t & " " & Cells(i, 1)) = .Item(t & " " & Cells(i, 1)) + Cells(i, 4)
                End If
            Next

            For i = x + 1 To x - 1 + Range("A" & x).CurrentRegion.Rows.Count
                k = Cells(i, 1) & " прибыль"
                Cells(i, 6) = .Item(k)
            Next
        End With
    Else
        MsgBox "На листе нет ячейки с значением " & s, vbCritical
    End If
End Sub
Сумма ячеек Excel по 2 условиям при условии что одно общее, Сумма ячеек Excel по 2 условиям при условии что одно общее
 
Я уже чуть подкорректировал код, теперь выгружает к каждому конкретному заводу, скопируйте код ещё раз.
Ну а насчёт поиска сводной - в коде имеет значение каждый символ... я не уверен что он найдёт своддную.
Сумма ячеек Excel по 2 условиям при условии что одно общее, Сумма ячеек Excel по 2 условиям при условии что одно общее
 
Вообще и из г... можно сделать конфетку, но сперва избавьтесь от всех ошибок в формулах! Надеюсь что в реальном файле ошибок нет.
Ну а диапазон уж тут придётся задавать в коде явно. Хотя можно конечно поискать где находится "СВОДДНАЯ ТАБЛИЦА"... Но ведь в реальном файле такого нет... Или есть?
Код
Sub tt()
    Dim t$, i&, k
    With CreateObject("Scripting.Dictionary")
        .comparemode = 1

        For i = 3 To 209
            If Len(Trim(Cells(i, 1))) > 0 And Len((Cells(i, 4).Text)) = 0 Then
                t = Cells(i, 1)
            Else
                .Item(t & " " & Cells(i, 1)) = .Item(t & " " & Cells(i, 1)) + Cells(i, 4)
            End If
        Next

        For i = 213 To 211 + [a212].CurrentRegion.Rows.Count
            k = Cells(i, 1) & " прибыль"
            Cells(i, 6) = .Item(k)
        Next
    End With
End Sub
Изменено: Hugo - 4 Авг 2018 20:26:20
Сумма ячеек Excel по 2 условиям при условии что одно общее, Сумма ячеек Excel по 2 условиям при условии что одно общее
 
Цитата
Lamanj написал:
Название у Заводов разное
- ну тогда можно так:
Код
Sub tt()
    Dim t$, i&
    With CreateObject("Scripting.Dictionary")
        For i = 3 To 52
            If Cells(i, 3) = "" Then
                t = Cells(i, 2)
            Else
                .Item(t & " " & Cells(i, 2)) = .Item(t & " " & Cells(i, 2)) + Cells(i, 3)
            End If
        Next
        [f10].Resize(.Count, 2) = Application.Transpose(Array(.keys, .Items))
    End With
End Sub

Цикл конечно в реальном файле нужен не от 3 To 52... Последнюю строку тоже можно определить макросом.
Ну и выгрузку сделать например в K1 и затем отфильтровать все строки где есть прибыль.
А если отбирать тут же в макросе - делаете цикл по ключам, если в ключе есть "Прибыль", то выгружаете на лист ключ и его итем.
Код
Sub tt()
    Dim t$, i&, k
    With CreateObject("Scripting.Dictionary")
        For i = 3 To 52
            If Cells(i, 3) = "" Then
                t = Cells(i, 2)
            Else
                .Item(t & " " & Cells(i, 2)) = .Item(t & " " & Cells(i, 2)) + Cells(i, 3)
            End If
        Next
        i = 0
        For Each k In .keys
            If k Like "*Прибыль" Then
                i = i + 1
                Cells(i, 11).Resize(, 2) = Array(k, .Item(k))
            End If
        Next
    End With
End Sub

Но пример конечно нужно показывать реальный, только покороче и без "личных" данных, ибо думаю что на реальном файле всё равно не взлетит, как бы мы тут не расписывались по этому куцему примеру.
Изменено: Hugo - 4 Авг 2018 19:16:11
Сумма ячеек Excel по 2 условиям при условии что одно общее, Сумма ячеек Excel по 2 условиям при условии что одно общее
 
Kuzmich, так нужно целиком всё опубликованное копировать! :)
Сумма ячеек Excel по 2 условиям при условии что одно общее, Сумма ячеек Excel по 2 условиям при условии что одно общее
 
Цитата
Kuzmich написал:
В вашем примере нет разделения прибыли по заводам
- как это нет? Тут есть всё!
Завод1 Транспорт 200
Завод1 Склад 200
Завод1 Прибыль 500
Завод1 0
Завод2 Транспорт 250
Завод2 Склад 250
Завод2 Прибыль 1000
Завод2 0
Звод2 Прибыль 200
Звод2 0
Изменено: Hugo - 4 Авг 2018 15:58:59
Сумма ячеек Excel по 2 условиям при условии что одно общее, Сумма ячеек Excel по 2 условиям при условии что одно общее
 
Kuzmich, там не всюду прибыль в FoundCell.Offset(3, 1)
И более того, не всюду ЗаводХ, но это может ошибка примера...

Можно так, из результатов чуть доработав код можно куда угодно выбрать нужное:
Код
Option Explicit
Option Compare Text

Sub tt()
    Dim t$, i&
    With CreateObject("Scripting.Dictionary")
        For i = 3 To 52
            If Cells(i, 2) Like "з*" Then
                t = Cells(i, 2)
            Else
                .Item(t & " " & Cells(i, 2)) = .Item(t & " " & Cells(i, 2)) + Cells(i, 3)
            End If
        Next
        [f10].Resize(.Count, 2) = Application.Transpose(Array(.keys, .Items))
    End With
End Sub
Изменено: Hugo - 4 Авг 2018 15:38:41
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 712 След.