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

Страницы: 1
Помогите пожалуйста проставить статус ., Проставьте в таблице 1 статус каждой строки из таблицы 3 в зависимости от стоимости.
 
Код
=ЕСЛИ(F3>5000000;"А"; ЕСЛИ(F3>=1000000;"Б";"С"))
Как использовать функцию ПРЕДСКАЗ.ETS в VBA?
 
Код
Range("D17").Formula = "=FORECAST.ETS(C17,D5:D16,C5:C16)"


По 3 числам прям там себе тренд, почти как СРЗНАЧ будет)
Изменено: kain - 24.01.2023 11:25:01
Преобразование формулы СЧЁТЕСЛИ, находящей дубли, в макрос, Формула ищет дубли в столбце, но когда много ячеек работает очень долго, макрос ускорит процесс
 
Вариант)
поиск даты в пересечении значений
 
Код
первое
=ИНДЕКС($D$1:$AC$1;АГРЕГАТ(15;6;1/($D4:$AC4<>"")*СТОЛБЕЦ($D4:$AC4);1)-СТОЛБЕЦ($D4)+1)

последнее
=ИНДЕКС($D$1:$AC$1;АГРЕГАТ(14;6;1/($D4:$AC4<>"")*СТОЛБЕЦ($D4:$AC4);1)-СТОЛБЕЦ($D4)+1)

для разнообразия)
поиск даты в пересечении значений
 
Код
=ИНДЕКС($D$1:$AC$1; ПОИСКПОЗ(1;1/($D4:$AC4<>"");0))
Автоматическая отправка файла по почте в заданное время
 
1. Создаем Excel файл с макросом, который отправляет файл по почте. Можно через Outlook, можно через CDO (без почтовых программ)
очень подробно описано у Дмитрия
https://www.excel-vba.ru/chto-umeet-excel/kak-otpravit-pismo-iz-excel/
Если через Outlook, добавьте в реестр данные, чтобы убрать оповещение
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=113155&a...

2. Создаем VBS файл, указываем путь, название макроса, название файла
Код
Call Run_macros

'запуск макроса'
Sub Run_macros()
   'запускаем Excel
   set objExcel = CreateObject ("Excel.Application")
   objExcel.Visible = True   
   objExcel.Workbooks.Open ("C:\kain\Macro.xlsm")
   'запуск макроса
   objExcel.run "Macros_Update_all"
   'Закрываем файл после завершения макроса
    objExcel.Workbooks("Macro.xlsm").Close(false)
   'закрываем Excel
    objExcel.Quit
end sub

3. Вешаем VBS в Планировщик заданий по расписанию

ЗЫ Пункт 1 можно избежать если отправку письма сразу сделать в VBS.
Например https://winitpro.ru/index.php/2011/04/29/otpravka-pochty-iz-vbs-vbscript/
Расчёт процента по определённому значению в сводной таблице
 
Например так
Добавить в несколько файлов эксель дату
 
Если это листы одного файла, то выделить листы и ввести значение в ячейку.
Значение будет на каждом выделенном листе.
Срабатывание vba за счет новых данных веб-запроса
 
Код
Sub test()

arr1 = [Счетчик_населения_Земли].Value
ThisWorkbook.Worksheets(1).ListObjects(1).QueryTable.Refresh BackgroundQuery:=False
arr2 = [Счетчик_населения_Земли].Value

If arr1 <> arr2 Then MsgBox "Обновилось"

End Sub
Макрос для загрузки файла по URL, Compile error: Variable no defined
 
Наверное связано с тем, что добавили Option Explicit

Добавьте Dim oStream до строки 11, можно даже в начало (с 3й строки)
Автоподстановка значений в фильтры сводной таблицы
 
Через добавление столбца в базу.
Осторожно, при совпадении всех условий СУММЕСЛИМН будет суммировать номер сценария.
Лучше чем Find, который не работает с ячейками, с более 255 знаками
 
В свое время приходилось работать с длинными комбинациями текста из множества ячеек и ВПРить их по всякому.

Решили проблему кардинально, макросом считали MD5 хэш и уже по нему подтягивали значения.
Как скачать файл из почты?, скачивание файла из почты
 
У Дмитрия же решение есть тут)))

Поставить Outlook и применить
Печать всех листов, если в ячейке указано любое число
 
В условиях про Главную ни слова)))
Код
Sub printtt()
Dim sh As Worksheet
For Each sh In Worksheets
    If sh.Name <> "главная" Then
        If Not IsError(sh.Cells(1, 2).Value) Then
            If sh.Cells(1, 2) <> "" Then
                sh.PrintOut Copies:=1
            End If
        End If
    End If
Next sh
End Sub
Перенос данных из другой книги в умную таблицу
 
Я так понимаю, что макрос переписывает, а не дописывает данные.
В текущем варианте, проще всего переключиться на PQ, запрос выдаст умную таблицу и по ней можно свободно строить.

Но если говорить про минимум изменений, то это решение Михаил Лебедев - именованный диапазон.
Вкладка формулы -> Задать имя -> Диапазон =СМЕЩ($B$1;0;0;СЧЁТЗ(B:B);13)

Создать сводную и в диапазон указать Имя.

Тогда и макрос можно не менять
Печать всех листов, если в ячейке указано любое число
 
Да, сорри
Код
Sub printtt()
    Dim sh As Worksheet
    For Each sh In Worksheets
       If Not IsError(sh.Cells(1, 2).Value) Then
         If sh.Cells(1, 2) <> "" Then
             sh.PrintOut Copies:=1
         End If
       End If
    Next sh
End Sub

Изменено: kain - 28.07.2020 10:09:10
Печать всех листов, если в ячейке указано любое число
 
А что не так с макросом?)))

Если про лист "Главная" речь не идет то вот, печатает все листы где не ошибка и не пусто в B2
Код
Sub printtt()
Dim sh As Worksheet
   For Each sh In Worksheets
      If Not IsError(sh.Cells(1, 2)) and sh.Cells(1, 2)<>"" Then sh.PrintOut Copies:=1
   Next sh
End Sub

Изменено: kain - 27.07.2020 18:24:42
Получение данных из таблицы, если совпадают день, месяц и время находится в нужном промежутке.
 
Код
=ЕСЛИОШИБКА(ИНДЕКС(Таблица2[Распорядок];АГРЕГАТ(14;6;1/([@День]=Таблица2[День])*([@Месяц]=Таблица2[Месяц])*(([@Время]>=Таблица2[Время]))*СТРОКА(Таблица2[Распорядок]);1)-1);"-")
Американский формат даты перевести в нормальный вид
 
данные - текст по столбцам - разделитель пробел - формат даты МДГ


Время: =--ПСТР(A2;НАЙТИ(" ";A2)+1;99)

Потом сложить дату и время

Или power query в 3 клика (не забудьте формат даты выставить), пример во вложении
Найти ближайшее время ранее заданного по условию..
 
Дата+время, выдает ближайшее меньшее дата+время
Код
=АГРЕГАТ(14;6;1/(B2=ТС!$A$2:$A$1826)/(C2>ТС!$C$2:$C$1826)*(ТС!$C$2:$C$1826);1)

ИД на основе полученной даты
Код
=АГРЕГАТ(14;6;1/(B2=ТС!$A$2:$A$1826)/(E2=ТС!$C$2:$C$1826)*(ТС!$B$2:$B$1826);1)


Если нужна только дата
Код
=АГРЕГАТ(14;6;1/(B3=ТС!$A$2:$A$1826)/(ЦЕЛОЕ(C3)>ЦЕЛОЕ(ТС!$C$2:$C$1826))*(ЦЕЛОЕ(ТС!$C$2:$C$1826));1)
Изменено: kain - 19.05.2020 19:52:47
Удаление повторяющихся значений без смещения ячеек с дополнительным условием
 
Так? Немного не бьется с вводными данными. Или там ошибка или мало вводных
Подставить значения в ячейки по двум критериям
 
Вот вам на выбор 5 вариантов без формул массива и без дополнительных столбцов.
СУММПРОИЗВ
СУММЕСЛИМН
ИНДЕКС+ПОИСКОЗ
АГРЕГАТ
ПРОСМОТР

Для всех этих вариантов рекомендую использовать умные таблицы или  ограничивать диапазоны для формул (не использовать варианты A:B, а  например A1:B100).

ПРОСМОТРХ сорри нету у меня в 2019м
Если что-то забыл, дополняйте
Изменено: kain - 19.05.2020 18:23:25
При отправке писем через макрос, outlook начал выдавать сообщение " о разреение отправки"
 
В дополнение можно еще написать, что этот пункт периодически сбивается на "Предупреждать о подозрительной активности, если антивирусная программа неактивна или устарела (рекомендуется)" и приходится заново его ставить.
Как вариант можно поставить антивирус (например Avast).

Еще есть вариант с реестром. Накидал сразу универсальный для всех видов разрядностей Office/Windows. Работает для Outlook 2016, 2019, 365.
Нужно сохранить как REG файл и записать в реестр.

Для предыдущих версий Outlook надо поменять "16.0" на соответствующую версию.
Код
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office\16.0\Outlook\Security]
"ObjectModelGuard"=dword:00000002

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\Microsoft\Office\16.0\Outlook\Security]
"ObjectModelGuard"=dword:00000002

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Outlook\Security]
"ObjectModelGuard"=dword:00000002

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Outlook\Security]
"ObjectModelGuard"=dword:00000002
Как извлечь все уникальные значения по условию без использования формул массива?
 
artyrH, спасибо, то что нужно!
Как извлечь все уникальные значения по условию без использования формул массива?
 
Добрый вечер!

Помогите пожалуйста, всю голову уже сломал.
Нужно извлечь уникальные значения (без повторения) по условию и без использования формул массивов.

В приложении пример, задача уже решена с применением формул массивов + есть пример извлечения всех уникальных значений (без условия) с АГРЕГАТ + извлечение всех значений по условию (с повторением) с АРГЕГАТ. А  вот уникальные (без повторений) значения по условию с АГРЕГАТ прям вот никак не могу.

В примере нужно извлечь все модели для марки BMW.

И пользуясь случаем, как Вы считаете, какой способ перечисления для аргумента k в АГРЕГАТ быстрее считается/лучше
Код
СТРОКА(1:1)
ЧСТРОК($A$1:$A1)
СТРОКА()-СТРОКА(ПерваяЯчейкаФормулы)+1

Заранее большое спасибо!
Изменено: kain - 31.05.2019 22:40:12
макрос для outlook или Excell - без оплаты, макрос для массовой рассылки писем с интервалом времени - для outlook или Excell
 
Вот это быстрая реакция модератора)))

Пока писал вопрос, понял в чем ошибка. Так что вопрос снимаю :)
макрос для outlook или Excell - без оплаты, макрос для массовой рассылки писем с интервалом времени - для outlook или Excell
 
Сорри
Изменено: kain - 30.01.2019 23:27:55
Страницы: 1
Наверх