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

Страницы: 1
Как получить коды доставленного товара без дубликатов. Уникальные значения по условию
 
Так?
Цитата
=ЕСЛИ(ЕСЛИ(SupplierOrders!J2="Delivered";SupplierOrders!B2)<>SupplierOrders!$B$2:$B$100;SupplierOrders!B2;"")

Только не понял логику сравнивать с диапазоном из которого и берутся данные.
Изменено: Иван Иваныч Иванов - 02.06.2025 10:30:38
Как создать макрос для эксель суммирование листов, Как создать макрос для эксель суммирование листов
 
Что-то подобное?
Выбор таблицы из списка нескольких, Выбор таблицы из списка нескольких
 
Пример - Выбор таблицы
(разрешите макросы)
Изменено: Иван Иваныч Иванов - 29.05.2025 12:35:08
Как создать макрос для эксель суммирование листов, Как создать макрос для эксель суммирование листов
 
Приветствую!
На ваш вопрос могу ответить – ДА! Возможно написать макрос.

Только вот, перед тем как писать макрос возникает несколько вопросов:
1. Зачем Вам промежуточные листы-соответствия «1А, 1N, 1F, 1K»? Можно один лист создать и там прописать один общий список соответствия. И есть ли в них вообще необходимость?
2. Вы эту таблицу будете заполнять вручную (ячейки, столбцы и строки не будут менять позиции) или она выгружается из другой программы например «1С» или формировать из нескольких выгрузок? Исходя из формулы «ВПР» на листах «А, N, F, K» можно прийти к выводу, что именно выгружается, раз прописана формула, значит предусмотрена вероятность изменения порядка списка Статей. И соответственно вероятнее всего Вы хотите запуском макроса решить все проблемы. А для этого требуются знать все «ЕслиМН».
3. Из выше сказанного. Макрос должен создавать дополнительные листы-соответствия, прописывать все формулы (делать все расчёты) или Вы просто хотите макросом на Листе «Консолидация» в Ячейку «С13» прописать Вашу формулу?
4. Что вообще должен делать «Макрос»? — Именно это основной вопрос на Ваш запрос. Каковы Ваши хотелки не все могу разгадать.

Для решения примера можно написать простой макрос, но будет ли он потом функционировать, когда появятся дополнительные «ЕслиМН», которые не были озвучены и предусмотрены.

P.S. Возможно не всегда требуется покупать комбайн, если иногда приходится скашивать всего по 25 колосков!?
Числа как текст превратить в числа, Выгрузка с 1С
 
Макрос "ПреобразоватьВЧисла" в Модуле2
Изменено: Иван Иваныч Иванов - 29.05.2025 05:40:39
Как сложить остатки если есть список аналогов
 
Что-то подобное?
Изменено: Иван Иваныч Иванов - 28.05.2025 13:00:51
Не сохраняется файл у коллег, Запрос Power Query не дает сохранить файл коллегам
 
Код
Sub КопироватьОбновитьФайл()

  ' *** НАСТРОЙКА: УКАЖИТЕ ПУТИ К ФАЙЛАМ И ПАРАМЕТРЫ ***

  ' Путь к исходному сетевому файлу (файлу, который копируем)
  Const SOURCE_NETWORK_FILE_PATH As String = "\\Сервер\Папка\ИсходныйФайл.xlsx"  ' Измените!

  ' Путь к папке, куда нужно скопировать файл (место назначения)
  Const DESTINATION_FOLDER_PATH As String = "C:\Путь\К\ПапкеКопии"  ' Измените!

  ' Имя файла, которое будет у скопированного файла
  Const DESTINATION_FILE_NAME As String = "КопияФайла.xlsx"  ' Измените!

  ' Полный путь к скопированному файлу (создается автоматически на основе предыдущих параметров)
  Dim destinationFilePath As String
  destinationFilePath = DESTINATION_FOLDER_PATH & "\" & DESTINATION_FILE_NAME

  ' *** ОКОНЧАНИЕ НАСТРОЙКИ ***

  ' Объявляем переменные
  Dim fso As Object  ' FileSystemObject
  Dim wb As Workbook

  ' Обработка ошибок
  On Error GoTo ErrorHandler

  ' Создаем объект FileSystemObject для работы с файлами
  Set fso = CreateObject("Scripting.FileSystemObject")

  ' Проверяем, существует ли папка назначения
  If Not fso.FolderExists(DESTINATION_FOLDER_PATH) Then
    ' Если папка не существует, создаем ее
    fso.CreateFolder DESTINATION_FOLDER_PATH
  End If

  ' Проверяем, существует ли исходный сетевой файл
  If Not fso.FileExists(SOURCE_NETWORK_FILE_PATH) Then
    MsgBox "Исходный сетевой файл не найден: " & SOURCE_NETWORK_FILE_PATH, vbCritical
    Exit Sub
  End If

  ' Копируем файл
  fso.CopyFile SOURCE_NETWORK_FILE_PATH, destinationFilePath, True ' True - перезаписывать, если файл уже существует

  ' Открываем скопированный файл
  Set wb = Workbooks.Open(destinationFilePath)

  ' Сохраняем скопированный файл
  wb.Save

  ' Закрываем скопированный файл (необязательно, можно оставить открытым)
  ' wb.Close SaveChanges:=True

  ' Сообщение об успехе
  MsgBox "Файл успешно скопирован и запросы обновлены: " & destinationFilePath, vbInformation

  ' Освобождаем объекты
  Set fso = Nothing
  Set wb = Nothing
  Set qt = Nothing
  Set pi = Nothing

  ' Выход
  Exit Sub

ErrorHandler:
  ' Обработчик ошибок
  MsgBox "Произошла ошибка: " & Err.Description, vbCritical
  ' Освобождаем объекты при ошибке
  Set fso = Nothing
  Set wb = Nothing
  Set qt = Nothing
  Set pi = Nothing

End Sub



Инструкции по использованию:
1. Откройте Excel.
2. Нажмите Alt + F11, чтобы открыть редактор VBA.
3. В редакторе VBA, вставьте этот код в модуль (Insert -> Module).

4. Настройте параметры:
o SOURCE_NETWORK_FILE_PATH: Замените "\\Сервер\Папка\ИсходныйФайл.xlsx" на полный сетевой путь к исходному файлу, который хотите скопировать. Это должен быть путь, доступный через сеть. Убедитесь, что у вас есть права на чтение этого файла.
o DESTINATION_FOLDER_PATH: Замените "C:\Путь\К\ПапкеКопии" на путь к локальной папке, куда вы хотите скопировать файл. Если папка не существует, макрос попытается ее создать. Убедитесь, что у вас есть права на запись в этой папке.
o DESTINATION_FILE_NAME: Замените "КопияФайла.xlsx" на имя, которое вы хотите дать скопированному файлу.

5. Вставьте кнопку на лист Excel:
o Перейдите на лист, где вы хотите разместить кнопку.
o Включите вкладку “Разработчик” (если она не отображается): Файл -> Параметры -> Настроить ленту -> Установите флажок “Разработчик”.
o На вкладке “Разработчик” нажмите “Вставить” и выберите кнопку (обычно из группы “Элементы управления формы”).
o Нарисуйте кнопку на листе.

6. Назначьте макрос кнопке:
o Щелкните правой кнопкой мыши по созданной кнопке и выберите “Назначить макрос…”.
o В появившемся окне выберите макрос КопироватьОбновитьФайл и нажмите “OK”.

7. Запустите макрос, нажав на кнопку: Каждый раз, когда вы будете нажимать на кнопку, макрос будет выполнять следующие действия:
o Копировать сетевой файл в указанную локальную папку.
o Открывать скопированный файл.
o Сохранять скопированный файл.

Важные замечания:
• Сетевой путь: SOURCE_NETWORK_FILE_PATH должен быть указан как полный сетевой путь (UNC path), например, \\ServerName\FolderName\FileName.xlsx.
• Права доступа: Убедитесь, что у вас есть права на чтение исходного сетевого файла и на запись в папку назначения.
• Существование папки назначения: Если папка, указанная в DESTINATION_FOLDER_PATH, не существует, макрос попытается её создать. Если у вас нет прав на создание папки, возникнет ошибка.
• Перезапись файла: Параметр True в fso.CopyFile означает, что, если файл с таким же именем уже существует в папке назначения, он будет перезаписан. Если вы не хотите перезаписывать файл, замените True на False. В этом случае, если файл уже существует, макрос выдаст ошибку.
• Файл назначения: Макрос открывает скопированный файл. Вы можете раскомментировать строку wb.Close SaveChanges:=True, чтобы макрос также закрывал файл после обновления. Если её не раскомментировать, файл останется открытым.
Не сохраняется файл у коллег, Запрос Power Query не дает сохранить файл коллегам
 
Это распространенная проблема при работе с файлами Excel в сетевой среде. Вот несколько стратегий, которые помогут вам избежать конфликтов при запросе данных через Power Query, не мешая работе ваших коллег:
1. Переход на другую модель работы с данными (Рекомендуется):
      • Использование базы данных (SQL Server, MySQL, PostgreSQL и т.д.): Самое надежное решение - перенести данные из файла Excel в настоящую базу данных. Это позволит нескольким пользователям одновременно работать с данными без конфликтов. Вы можете организовать автоматическую выгрузку данных из Excel в базу данных (например, с помощью VBA-макроса, запускаемого по расписанию, или с помощью Power Automate). Затем вы будете подключаться к базе данных через Power Query.
      • Использование SharePoint List или Microsoft Lists: Если переход на полноценную базу данных слишком сложен, рассмотрите возможность использования SharePoint List или Microsoft Lists для хранения данных. Эти сервисы позволяют нескольким пользователям одновременно редактировать данные без блокировки файла. Power Query может подключаться к SharePoint List.
      • Использование Power BI Dataflow: Если вам нужны более сложные преобразования данных, рассмотрите возможность использования Power BI Dataflows. Это позволит вам централизованно управлять преобразованиями данных и делиться ими с другими пользователями.
2. Оптимизация запросов Power Query:
      • Загрузка только необходимых данных: Измените запросы Power Query так, чтобы они загружали только те столбцы и строки, которые вам действительно нужны. Это уменьшит объем данных, которые Excel должен обрабатывать, и снизит вероятность блокировки файла. Используйте фильтры и удаляйте ненужные столбцы на ранних этапах запроса.
      • Отключение фонового обновления: Отключите фоновое обновление запросов Power Query. Это предотвратит автоматическое обновление запросов в фоновом режиме, что может мешать работе ваших коллег. Чтобы отключить фоновое обновление, перейдите на вкладку “Данные” -> “Запросы и подключения” -> “Свойства” для каждого запроса и снимите флажок “Разрешить фоновое обновление”.
      • Обновление запросов вне рабочего времени: Запланируйте обновление запросов Power Query на время, когда ваши коллеги не работают с файлом (например, ночью или в выходные дни). Это можно сделать с помощью Power Automate или планировщика заданий Windows.
      • Использование локальной копии файла: (С осторожностью) Вместо прямого подключения к сетевому файлу, создавайте локальную копию файла Excel и обновляйте запросы Power Query из этой копии. Затем можно использовать другой механизм (например, Power Automate) для копирования изменений из локального файла в сетевой файл (но это сложно и может привести к потере данных). Настроить автоматическую выгрузку данных из файлов персонала в промежуточный общедоступный файл Excel или Access, а уже из этого файла загружать данный в сводный файл.
3. Организационные меры:
      • Согласование графиков работы: Обсудите с коллегами, в какое время они обычно работают с файлом, и старайтесь не обновлять запросы Power Query в это время.
      • Уведомление о планируемом обновлении: Предупреждайте коллег заранее о планируемом обновлении запросов Power Query, чтобы они могли сохранить свою работу и закрыть файл.
      • Разделение данных: Если это возможно, разделите данные на несколько файлов, чтобы уменьшить вероятность конфликтов.
4. Технические решения:
      • Использование Excel Services (SharePoint): Если вы используете SharePoint, рассмотрите возможность использования Excel Services для предоставления общего доступа к файлу. Excel Services позволяет просматривать и редактировать файлы Excel в браузере без необходимости открывать их в Excel.
Написание формулы с несколькими условиями меньше, больше или равно
 
Так подойдёт? Или надо современней и «трендовий»?
текст(правсимв(;)) - результат неожидаемый, Корректное использование текст(правсимв()) из исходника в текстовом формате с содержимым "++"
 
Пример-Автокад
Изменено: Иван Иваныч Иванов - 15.05.2025 12:18:30
Возврат Даты в числовом виде VBA
 
Цитата
asdewq1 написал:
Может есть возможность как то это побороть без изменения числового формата????

А попробуйте просто из Вашего макроса убрать «As Date»

Код
Public Function ИзвлечьДатуДокумента1(Text As String)
ИзвлечьДатуДокумента1 = Format(CDate(MyRegex(Text, "\d{2}\.\d+\.\d+")), "DD.MM.YYYY")
 
'ИзвлечьДатуДокумента1 = Format(MyRegex(Text, "\d{2}\.\d+\.\d+"), "DD.MM.YYYY")
End Function
Изменено: Иван Иваныч Иванов - 14.05.2025 17:30:47
Поиск ошибок нескольких Отчётов одной формулой, Проверка нескольких отчетов на корректность в одной формуле
 

В Вашей формуле

Код
И(ОКРУГЛ('4-Пр. по клиентам'!EK3;0=

После нуля пропущена скобка

Сработала такая формула.

Код
=ЕСЛИ(ОКРУГЛ(DS3;0)=ОКРУГЛ('2-Общ. прод. на катег.'!DS3;0)=ОКРУГЛ('3-Прод. по катег. по напр.'!DS3;0)=ОКРУГЛ('4-Пр. по клиентам'!EK3;0);"ИСТИНА";"ЛОЖЬ")
Нужна формула для вычисления нужных пропорций числа, Нужна формула для вычисления нужных пропорций числа
 
Расчёт выплат.

170 000 – это 101%

Вариант №2.

1.Вычисляем Сумму к оплате                  170 000/101*100 = 168316,831683168

2.Вычисляем 1% на оплату                      168316,831683168 * 0,01 = 1683,16831683168

3.Сумма итоговая                                      168316,831683168 + 1683,16831683168 = 170 000

Изменено: Иван Иванов - 07.05.2025 19:07:03
Расчет процента от суммы нарастающим итогом
 

Если я правильно понял поставленную задачу.

Изменено: Иван Иваныч Иванов - 16.05.2025 18:25:02
Ширина и высота ячеек, Не получается точно указать ширину и высоту ячеек
 

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

По-другому, только через ТексБоксы(Надписи), которые сохраняют установленные размеры. С привязкой формулами к ячейкам.

Умная таблица (доработка её формул другими формулами), Умная таблица (доработка её формул другими формулами)
 
Пример. Лист Microsoft Excel-001
Убрать все символы из ячейки до определенного знака (формула)
 
Bond2025 , к теме как бы мало ваш вопрос относится, если только выделить мин из столбца измерений =--LEFT(C2;FIND("-";C2)-1),
Формула не работает. Офис 2013 стоит. Поставить посвежее?


=ЛЕВСИМВ(C2;НАЙТИ("-";C2)-1)
Изменено: Иван Иванов - 24.04.2025 19:06:48
Убрать все символы из ячейки до определенного знака (формула)
 
Пример - «opic_new&FID=1»

Если нужен файл без макросов.

Сохраните его как надстройка и потом подключите как надстройку.

Изменено: Иван Иванов - 24.04.2025 18:50:18
Страницы: 1
Наверх