написал: Избавьтесь от повторений в списке при помощи Данные => Удалить дубликатыПравда есть нюанс, оставлять открытым верхнюю границу при этой формуле нельзя
Кажется решила, правда через формулу массива. ={ЕСЛИОШИБКА(ИНДЕКС($I$2:$I$31;ПОИСКПОЗ(1;((A2=$F$2:$F$31)*(B2>=$G$2:$G$31)*(B2<$H$2:$H$31));0);1);0)}
Да верхние границы должны быть закрыты (написала 99999), плюс дубли можно не удалять. Не всегда с этими таблицами буду работать только я.
А если повтороения будут он не проссумирует? Пытаюсь сейчас через индекс и поиск поз сделать. Список большой могут быть повторения, надо чтобы первое находил попавшееся
Добрый день. Такая ситуация. Есть две таблицы. В одной категория и цена В другой категории и диапазон цен с маржой. Надо по категории и по вхождению цены в диапазон подтянуть маржу. ЗЫ файл для опытов прилагается.
написал: Насчёт бардака - нужно как-то код продумывать для облегчения работы. может GPT чем-то может помочь с такими файлами, но я не использую в этом направлении.
Возможно позже доберусь и до парсеров. Не знаю кто этим занимается, просто скидывают финальные файлы.
написал: Кстати только сейчас заметил что там в пути два \\, но не мешает - это из Вашего первого кода наложилось на мой ))Так что тут можно путь указывать и без \ в конце
Насчет порядка. Как я понимаю, это парсинговые данные с заграничных сайтов. Приходят раз в несколько месяцев. Причем я делала по двум направлениям новые прайсы, там тоже в исходниках такой бардак идет. Что я несколько дней только на формулы потратила.
написал: - нужно порядок в данных наводить.Можно ещё дополнительно посмотреть длину этой цены, и чтоб цена была с запятой (круглых и без ,00 наверное нет?) - это если ОЕМ всегда больше самой большой цены
На самом деле круглые бывают, по крайней мере отображаются такие. Хотя надо будет посмотреть максимальную длину цены по файлам и сравнить с ОЕМ и уже к этому привязку делать. Но как это сделать я пока не понимаю)
Я прям совсем новичок в vba. Что где и как, смогу понять. Но с ноля код точно не напишу и далеко не все в нем понимаю. Просто есть задача пытаюсь решить с помощь gpt, поисковика и форумов. Excel обработку файлов так сделала, а тут проблемы)
Там по идее если ОЕМ то текствое, не должен пересчитать. Вроде gpt предложил сделать проверку, но она как-то коряво отрабывает. Вроде и есть, а все равно поверх пытается цену проверять и выводит ошибку, что текстовое значение Смотреть надо
написал: если это нормальные файлы, то тогда их этим кодом не обработать, их нужно отдельно отложить и думать что с ними делать. Может первым кодом открывать, но там видите на скринах как оно сохраняет.. А вручную открыть/закрыть у меня сохранил нормально.
Я делала, чтобы копировались ошибки в excel отдельный файлик. У меня чуть больше 200 вышло с ошибками из нескольких десятков тысяч записей. Видела, что он тащит в проверку ячейки из столбцов E и D. Нужно смотреть почему, подозреваю, что что-то с разделителями. С утра не успела посмотреть. Разово попробую пройтись посмотреть, руками где нужно поправить. Позже эти файлы будут в работе долгое время, до очередного парсинга со стороны.
написал: - можно.Оцените вариант.Но сообщений об ошибках в сообщение влезает что-то около 18 штук, если больше то можно эту строку писать куда-то например прямо на этот лист.И кстати если их не много и есть желание запомнить - с месиджбокса можно скопипастить!
Спасибо огромное. Посмотрю дома, на работе, к сожалению нет доступа к файлам нормального.
Да, там текст. Можно как-то сделать, чтобы эти ошибки пропускались или строка с ошибкой удалялась? Я сегодня пыталась через gpt наваять. Но там похоже еще и есть места где сбита разбивка CSV, поэтому он мне пихает около 200 строк с ссылкой на соседнюю (предыдущую ячейку) в строке. Выложить сейчас не могу код, так как файлы дома на компьютере.
Добрый день всем. Ситуация такая, в папке есть куча файлов в CSV формате Нужно в каждом файле в столбце F - цена, сделать к цене + 17%, т.е. цена * 1.17 При этом в столбце F могут быть как текстовые, так и числовые значения, так же попадаются ошибки. До этого делала с обычным excel файлом (макрос писал GPT с моими корректировками), все работает, а тут ерунда получается. Код макроса и образец файла прикладываю ниже. Заранее спасибо.
Sub Bez_scidki() Dim folderPath As String Dim fileName As String Dim wb As Workbook Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim cellValue As Double
' Укажите путь к папке с файлами folderPath = "C:\Users\123\Desktop\Площадки\123\2024.07.16\New\"
' Перебираем все файлы в папке fileName = Dir(folderPath & "\*.csv") While fileName <> "" ' Открываем файл Set wb = Workbooks.Open(folderPath & "\" & fileName)
' Получаем первый лист Set ws = wb.Sheets(1)
' Проверяем, можно ли преобразовать столбец H в числовой формат For i = 2 To ws.Range("F" & ws.Rows.Count).End(xlUp).Row If IsNumeric(ws.Cells(i, "F").Value) Then cellValue = CDbl(ws.Cells(i, "F").Value) * 1.17 ws.Cells(i, "F").Value = Format(cellValue, "0.00") Else ws.Cells(i, "F").Value = "0" End If Next i
' Сохраняем файл wb.Save
' Закрываем файл wb.Close
' Переходим к следующему файлу fileName = Dir() Wend
MsgBox "Обработка файлов завершена.", vbInformation End Sub
Не знаю, GPT писал, для excel работало. Для csv разрешение поменяла, не работает. Хм скорее всего по столбцам Вы правы. Но тогда я в растерянности, как вообще изменить данные. Ручками более 50 файлов тяжело и долго.
Добрый день всем. Ситуация такая, в папке есть куча файлов в CSV формате Нужно в каждом файле в столбце F - цена, сделать к цене + 17%, т.е. цена * 1.17 При этом в столбце F могут быть как текстовые, так и числовые значения, так же попадаются ошибки. До этого делала с обычным excel файлом, все работает, а тут ерунда получается. Код макроса и образец файла прикладываю ниже. Заранее спасибо.
Sub Bez_scidki() Dim folderPath As String Dim fileName As String Dim wb As Workbook Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim cellValue As Double
' Укажите путь к папке с файлами folderPath = "C:\Users\123\Desktop\Площадки\123\2024.07.16\New\"
' Перебираем все файлы в папке fileName = Dir(folderPath & "\*.csv") While fileName <> "" ' Открываем файл Set wb = Workbooks.Open(folderPath & "\" & fileName)
' Получаем первый лист Set ws = wb.Sheets(1)
' Проверяем, можно ли преобразовать столбец H в числовой формат For i = 2 To ws.Range("F" & ws.Rows.Count).End(xlUp).Row If IsNumeric(ws.Cells(i, "F").Value) Then cellValue = CDbl(ws.Cells(i, "F").Value) * 1.17 ws.Cells(i, "F").Value = Format(cellValue, "0.00") Else ws.Cells(i, "F").Value = "0" End If Next i
' Сохраняем файл wb.Save
' Закрываем файл wb.Close
' Переходим к следующему файлу fileName = Dir() Wend
MsgBox "Обработка файлов завершена.", vbInformation End Sub
написал: Когда будете искать модель по списку - ищите в первом куске строки до запятой (такое ведь условие), и сперва ищите тех кто подлиннее.Иначе никогда не найдёте условно ALFA ROMEO, если сперва будете искать условно ROMEO и на этом остановитесь.
Пока так, потом посмотрю может перейду на регулярку в гугл таблице со списком машин. Я пока не до конца понимаю как вообще будут приходить данные. В каком виде. Пока мне дали две гугл таблицы, но как будет дальше...
Нет. Есть список позиций - в текущей около 1000 штук. Я через второй вариант сделала формулу в гугл таблице. Там где пустые места, брала ручками марку машины и добавляла в формулу). Работа по добавлению практически разовая. Потом формула будет в новые таблицы просто копироваться и список постепенно дополняться.