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

Страницы: 1 2 След.
Подсчет количества определенных значений в тексте
 
Максим В., да, так было проще, я че-то извращнулся и создал три списка ключевых:строчные, прописные и пропнач и взял их сумму)
Подсчет количества определенных значений в тексте
 
Максим В., действительно плохо. Спасибо!
минус, формула чувствительна к регистру
Подсчет количества определенных значений в тексте
 
Вроде, плевая задача, но за полчаса ничего не нашел.
Определяю тошнотность ключей в сео-тексте. Текст по абзацам вставил в несколько ячеек в один столбец. Нужно количество содержания ключей в тексте.
Счетесли считает количество ячеек содержащих искомое значение. То есть он игнорирует, если в ячейке слово повторяется несколько раз.
В примере - мне нужен результат 9 битлджусов, он выдает 3.
Можно текст разбить по столбцам одно слово на ячейку, но, наверное должен быть простой нахождения количества всех значений.
MSXML2.XMLHTTP по списку URL c заданными XPATH селекторами, Парсинг
 
Сразу скажу, ознакомился с https://excelvba.ru/code/GetWebPageText и несколькими темами на форуме по ключу в поиске "парсинг" и "MSXML2.XMLHTTP".
Не хватает бэкграунда по терминологии, а VBA - вообще темный лес, поэтому не исключаю, что схожая тема существует - но постарался сначала все изучить, прежде чем обратиться. *Про Parser в курсе, Игорь сделал полезный софт, но хочется идти своим путем.

В общем. Есть поставщик с каталогом, есть список url, которые ведут к карточкам товара в этом каталоге. Есть понимание где в коде html находятся нужные значения. Единственное, не совсем понимаю, в чем разница между xpath и selector - когда в режиме просмотра нажимаешь на элемент и выбираешь опцию copy. В таблице поэтому две колонки на одно значение.

Алгоритм логически представляется простым: делается запрос по url в колонке url_list, далее по другим колонкам где описан путь к искомым данным выбирается значение и в виде текста возвращается в колонку по строке того же url. В приложенном файле вручную заполнил значения, вроде все понятно. Сложность вижу в том, когда на один атрибут - в примере - размер приходится несколько значений, и точное количество неизвестно. Еще у других поставщиков есть вариации с зависимостью цен и веса от размеров - то есть когда размер кнопкой, а значения цены и веса динамические.

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

Буду благодарен за подробный комментарии к макросу, т.к. во-первых, поставщики есть другие, придется переадаптировать макрос каждый раз, а меня шаг влево, шаг вправо в незнакомом коде напрочь сбивает, во-вторых похоже неизбежно движусь к изучению VBA, было бы полезно.

P.S. Может имеет смысл ориентироваться не по списку url, потому что его тоже надо каждый раз отдельно формировать, а по адресу "корневой папки": https://sokolov.ru/jewelry-catalog/product/ в данном случае.  
Подсчёт уникальных артикулов по поставщику
 
Wild.Godlike, до божественного вмешательства искренне считал, что с темой все ок - сейчас не знаю как переименовать)
на ваш файл антивирус ругается, кстати - впервые вижу такое
Подсчёт уникальных артикулов по поставщику
 
vikttur,Давайте изменим названием темы. Формулировку "Счётесли" выбрал потому что оно максимально лаконично определяет задачу: подсчет количества при определенном критерии. Можем поменять на "Подсчет количества уникальных значений с условием".

P.S. У Mershik кстати, действительно было что-то похожее, но там нецелочисленные значения выдает.
Подсчёт уникальных артикулов по поставщику
 
Михаил Лебедев, спасибо.  
Подсчёт уникальных артикулов по поставщику
 
vikttur,Никому не говорить о названии темы?) А если серьезно:
2.1. Название темы должно отражать смысл проблемы. Темы с названиями "Помогите", "Help", "Срочно", "Нужен макрос" - плохая идея. Модераторы имеют право переименовать, удалить или закрыть такие темы без предупреждения.
Без шуток - не понимаю, в чем проблема.
Подсчёт уникальных артикулов по поставщику
 
Знаю, тема избитая, в интернете не трудно отыскать различные вариации задачи с разными решениями.
Но хочется найти какое-то простое и изящное.
В общем, есть поставщики с разными артикулами, артикулы дублируются. Нужно посчитать как количество товара у поставщика всего, так и уникальных артикулов.
Сейчас мне проще всего удалять дубликаты, и подсчитывать результат.
Хочется считать уники так же просто, как и общее количество, не запоминая сложную логику, не сохраняя куда-то алгоритм, не набирая километры символов, увеличивая шанс опечатки и нервы с этим связанные.
Переименование файлов из одной папки по списку
 
Nordheim,Отлично работает!
Еще заменил

If Err > 0 Then Cells(i, "a").Interior.Color = vbRed: Err.Clear

на

If Err.Number = 58 Then Cells(i, "a").Interior.Color = vbRed: Err.Clear
If Err.Number = 53 Then Cells(i, "a").Interior.Color = vbBlue: Err.Clear

Мне удобно, но я думаю, для чистоты нужно что-то добавить для других ошибок.  
Переименование файлов из одной папки по списку
 
В общем, неделю назад искал как переименовывать файлы по списку и наткнулся на эту тему. Обрадовался, начал использовать, но на практике постоянно сталкивался с какими-то мелкими проблемами. В итоге пришел вот к такому варианту кода:

Option Explicit
Sub Rename()
On Error Resume Next
Dim OldName As String, NewName As String, sPath As String
Dim i As Long, lLastRow As Long
  sPath = "C:\1\"
  lLastRow = Cells(Rows.Count, "a").End(xlUp).Row
  For i = 2 To lLastRow
     OldName = sPath & Cells(i, "a")
     NewName = sPath & Cells(i, "b")
     Name OldName As NewName
  Next i
  If Err > 0 Then Exit Sub
  On Error GoTo 0
End Sub

Сразу скажу, что я там даже близко не программист, только примерно понимаю, как код работает, опирался на интуицию и просто шел путем перебора вариантов.
Какие тут изменения относительно верхнего кода и почему:
1. Убрал кнопку - мне не нужна, и два одинаковых кода смущают.
2. Переименовал sub - почему-то иногда проблемы с кодировкой при ctrl-v
3. Заменил 1 и 2 на "a", "b" здесь: " sPath & Cells(i, 1) sPath & Cells(i, 2)". Наверное, не обязательно, но мне проще соотносить с колонкой было
4. "lLastRow = Cells(Rows.Count, "a")". Показалось, что с 2 у меня не работало. Заменил на 1, потом на "a", соответственно.
5. Сразу сделал отсчет со второй строки. Как правило, всегда есть подзаголовки.
6. И, самое главное, постоянно вылезали ошибки 53 и 58. Когда работаешь с большим объемом данных, неудобно спотыкаться на каждой строке. Проще потом проверить, что не так. Минус еще в том, что он последовательно обрабатывает строчки и непонятно на какой именно происходит ошибка, а уже переименованные строки он считает ошибочными при повторном запуске. Поэтому погуглил как игнорировать ошибки.

Я понимаю, что как сами изменения, так и мои комментарии для специалиста могут выглядеть также как шаманские рецепты выглядят для врача, но эта система работает, и может кому-то помочь.

С радостью узнаю о возможных неточностях или более эффективных методах решения проблемы.
Изменено: Sharmat - 17.04.2020 19:08:42
Группировка без промежуточных строк и с условиями
 
Михаил Л, спасибо еще раз!
Группировка без промежуточных строк и с условиями
 
Михаил Л, спасибо, по сути только отбор по максимальной цене осталось сделать
Сохранение визуального отображения формата как значения
 
buchlotnik, Спасибо!
Сохранение визуального отображения формата как значения
 
Дмитрий(The_Prist) Щербаков, по вашей ссылке может я в ufd не разобрался, но когда я создаю модуль вот с этим:

Function VisualVal_Text(rc As Range)
   VisualVal_Text = rc.Text
End Function

У меня просто все числа заменяются на шаблон формата.
То есть было 15827, ожидалось/отображалось 015827, вышло 000000
Изменено: Sharmat - 04.04.2020 11:45:45
Группировка без промежуточных строк и с условиями
 
Андрей_26, спасибо, но один в один я могу настроить в 1с такую структуру данных. От нее и исходил, в общем-то. Даже здесь на форуме макрос искал чтобы пустые размерные колонки удалять. Эти данные импортируются, и для импорта нужна именно такая структура как в моем примере на листе 2.
Группировка без промежуточных строк и с условиями
 
Вечер добрый!
Выгружал с 1с, не учел, что один из параметров незначительно отличается, поэтому один и тот же вид товара представлен в несколько строк.
Нужно по принципу уникальный артикул - 1 строка, если в столбцах идут разные данные( как в Параметрах), нужно брать значение у первого.
Сложность с размерами, их нужно так же в строку, суммируя количество, но цену при этом выбирая максимальную.
На втором листе - как выглядит итог.
Удаление пустых ячеек с условием
 
Mershik, Kuzmich, спасибо, не понимаю, как конкретно они делают но оба макроса дают результат.
Mershik,  самая лаконичная и правильная формулировка, наверное, будет такая: Если ячейка в столбце с подзаголовком содержащим текст "цена" пустая - удаляется она и две ячейки справа от нее, со сдвигом влево.
Kuzmich, в прошлом сообщении что-то сказали про "неответ". Предполагаю, я когда-то на одной из тем не отреагировал на ваше сообщение. Наверное, забыл подписаться на новые сообщения. Если Вы тогда потратили время на помощь мне, то спасибо и извините, что не увидел или забыл ответить.
Удаление пустых ячеек с условием
 
Есть данные по товарами, с количеством и ценами по размерным рядам. Обычным способом удалять мешают ячейки с размерами. В примере вручную сделал, как в итоге должно выглядеть. Строк товара тысячи, в одной строке могут быть разные размеры
Сохранение визуального отображения формата как значения
 
Дмитрий(The_Prist) Щербаков, Спасибо!

Kuzmich, не понял, о чем Вы.
Сохранение визуального отображения формата как значения
 
Сохранял с 1с. Артикулы с левыми нулями отображаются автоматически по формату почтовый индекс, при этом само значение без левых нулей.
Собственно мне надо получить свои нули в значении - не "1", а "000001".
Глобально интересует универсальное решение: как можно вид превратить в значение. Там в пример 14.03.2020 отображается как 14.мар и хотелось бы извлекать это отображение текстом - вот именно эти 6 символов: 14.мар. Для любого формата - времени, процентов, дробей.
Количество строк в группировке
 
Есть огромный, сгруппированный список с клиентами и купленным ими товаром, в настройках отчета 1с почему-то нет реквизита количества покупок, единственный реквизит сумма.
Подскажите, пожалуйста, как получить количество строк в каждой группировке. Здорово, если можно добавить условие - навроде, в строке с товаром содержится "текст" считать, не содержится - не считать.
Данные по остаткам, находящихся на других листах, с отбором по поставщику и виду товара
 
Inexsu, код не делает отсечку по месяцам, если в остатках января ввести такой же товар с таким же поставщиком, как и в феврале, он в февральские итоги вставит январские данные. Тут, видимо и месяц должен идти "as string".
Данные по остаткам, находящихся на других листах, с отбором по поставщику и виду товара
 
Inexsu Михаил, спасибо! Макрос выглядит сложнее чем мне казалось.  
Данные по остаткам, находящихся на других листах, с отбором по поставщику и виду товара
 
Прошу совета.

Имеем выгруженные из 1с один отчет по продажам, сформированный как в примере, на 12 месяцев, и 12 отчетов по остаткам на начало каждого месяца.
В качестве номенклатурных позиций у нас товары(с иерархией) и поставщики.
Формируем один документ с 13 листами.
Нужно на первом листе с продажами заполнить количество данного вида товара данного поставщика на начало месяца для того чтобы рассчитать процент продаж относительно общего количества.
При этом не факт что поставщики в продажах и остатках будут совпадать.

P.S Разработчик конфы начал злоупотреблять властью и за простенькие доработки просит большие деньги. Потихоньку изучаю язык запросов, и вроде даже представляю как сформировать такой готовый отчет в учебной базе, но как только захожу в нашу систему, разбегаются глаза от обилия отчетов, справочников, регистров и т.п.

P.P.S. Кстати, может кто знает, как корректнее брать остаток для подсчета отношения проданного и "в наличии". Самым правильным, наверное, было брать значения остатка на момент продажи конкретной единицы товара а потому выводить сумму отношений, но это как-то муторно и много операций.
Изменено: Sharmat - 24.01.2020 21:24:02
Автозаполнение с ссылками на другой лист
 
vikttur, ocet p, Спасибо! Выбрал впр с двссыл. Единственное, хотелось бы понимать алгоритм их действия. Почитал про функции, абстрактно - понятно, что они делают, но в конкретном случае вот это все обилие аргументов, символов путает.
Автозаполнение с ссылками на другой лист
 
Прошу посодействовать.

В упрощенном виде: имеем несколько листов с данными по прибыли нескольких магазинов, и еще один лист с общими данными по всем магазинам. Все с делениями на одинаковые периоды(12 месяцев)
В итоговом листе за первый месяц вводим ссылки на тот же месяц на листе каждого отдельного магазина, и хотим автозаполнением покрыть весь период.

Проблема в том, что в отдельных листах период идет по строке, а в общем листе по столбцу.
И автозаполнение происходит по столбцу, т.е вместо а2,а3,а4 идет b1,c1,d1.
Транспонировать ни одну из таблиц не вариант!
На одном листе это решается знаком абсолютной ссылки $, здесь куда его не совал результата не добился.
Автоматически выводить количество товаров определенного вида в определенном типе вагонов
 
Цитата
Wiss написал:
Так тоже "попробуйте" (Лист1 (2)), но у  Vik_tor , вроде бы эффективнее.
У Вас здесь что-то пугающее)
Автоматически выводить количество товаров определенного вида в определенном типе вагонов
 
Stics, интуитивно, так и думал, спасибо
Wiss, Спасибо за подробный ответ, но он немного путает. Наибольшее значение возвращает при условии, что список отсортирован? А если нет, просто последнее? Эмпирически выглядит так. Может вообще бессмысленно в моем случае говорить о массиве?
А что вообще под последним значением понимается точно? Пустые ячейки игнорируются?
Автоматически выводить количество товаров определенного вида в определенном типе вагонов
 
Vik_tor, Спасибо большое, отлично подходит! Не могли бы вы прокомментировать какая роль у "искомого значения" - "9^9" в этой формуле, я немного почитал про функцию просмотр, на этом месте обычно стоит некое значение которое надо найти  в векторе или массиве.

Отвлеченный вопрос, я правильно сформулировал свою проблему?)
Страницы: 1 2 След.
Наверх