Всем здравствуйте! Помогите пожалуйста с таким. Есть данные по продажам магазинов(название магазина, сумма чека, кол-во чеков и средний товарооборот). И такие же данные по конкурентам. Можно ли сделать так, чтобы при выборе номера магазина в ячейке из раскрывающегося списка, подтягивались данные по этому магазину и его конкурентам? Пример прилагаю.
Всем доброго дня! Помогите пожалуйста с такой задачей. Есть таблица, в которой внесены цены на товар. Все цены привязаны к коду товара. Но цены находятся в двух разных столбцах(D и E),а также в разных строках. Нужно, чтобы обе цены на один и тот же код товара были на одной строке(как в примере)
Подсакажит пожалуйста, почему, при открытии файла формула выглядит таким образом? =ЕСЛИ(B28;"";ОБЪЕДИНИТЬ(", ";1;_xlfn._xlws.FILTER(C3:C27;ИНДЕКС(E:E;СТРОКА(C3)):ИНДЕКС(E:E;СТРОКА(C27))))) то есть где должно быть ФИЛЬТР получается _xlfn._xlws.FILTER Также нет самой функции ФИЛЬТР. Только что переустановил офис 2021(версия excel 2108), но это не решило проблему. Все также доступна толкьо одна функция =ФИЛЬТР.XML
МатросНаЗебре, и снова здравствуйте! Подскажите пожалуйста, а как быть если например за весь период товара находился по нулям? Сейчас если так, то периодов считает 0(по этой формуле =СЧЁТЕСЛИМН($C$2:$V$2;$C$2;$C3:$V3;0;$E$2:$X$2;$C$2;$E3:$X3;">0")+(СЧЁТЕСЛИМН($C$2:$V$2;$C$2;$C3:$V3;">0")>0)*(W3=0)*(W3=0)). А можно изменить формулу так, чтобы считал как один период даже если товара не было вообще?
Sanja, День добрый! А подскажите пожалуйста, как данную формулу изменить, чтобы сравнение происходило не только по коду товара, но и ,дополнительно, по номеру аптеки? Пробовал просто добавить столбец через &-не получилось((
МатросНаЗебре, А такой вопрос. После применения кода все прошло отлично-разделило все как было в ТЗ. Но теперь на каждом листе у меня очень много "лишних" строк. Т.к. я применил код к основному своему массиву данных, то лишних строк на листах под 10-20 тысяч)) То есть, если я хочу промотать лист до конца, то конечной строкой будет не последняя строка с данными(к примеру 4500), а строка пустая под номером 24000(и все строки выше, до 4500 тоже пустые-без данных). И так на всех 70 листах...Можно как ограничить использование на листах конечной строкой с данными?
Всем здравствуйте! Помогите пожалуйста справиться с таким. Есть таблица, в которой внесены данные по продажам разных аптек. Нужно произвести разбивку по листам, по каждой аптеке отдельно, чтобы лист назывался как и аптека(напр аптека1, аптека2 и тд)
"Маркером" для разделения данных(для написания кода) может служить как название аптеки, так и слово "ИТОГО". В примере только небольшая часть данных. Аптек порядка 100 и наименований продаж около 50 тыс. Также, на каждом листе нужно дублировать верхнюю строку с общего листа.
Sanja, большое спасибо! Но вот такой момент. Как быть, когда последняя ячейка содержит ноль? Сейчас считает так, что если кол-во периодов отсутсвия продаж было 4, то когда в последней ячейке стоит ноль, то итог не 5 а 3. То есть крайнюю ячейке содержащую ноль "минусует" из формулы.
написал: Не нужно выводить макрос он автоматически срабатывает когда добавляете данные
Я понял)) ввиду того, что изначально ТЗ было сформулировано крайне криво, то и проверял я не те данные(добавлял новые столбцы и не мог понять почему не считает).
написал: Вам нужно не протягивать формулу, а расширять используемый в формуле диапазон? Раз вы собираетесь добавлять СТОЛБЦЫ. Ну и kaloni , ввели в заблуждение такой формулировкой.
Да, прошу меня извинить за неточности. Ввиду того, что даже имея за плечами неоднократное обращение к участникам форума в помощи, так и не научился корректно писать ТЗ.
С вашим уточнением получится решить мою задачу? Все же очень хочется через макрос)
написал: Да я не критикую, просто запись интересная. Для чего два умножение на 0 или 1?
Ответить на этот вопрос не могу. Отнюдь не из-за врожденной вредности, а т.к. просто не знаю. Формулу дали-я ее применил на своем примере. Работает как мне нужно-я удовлетворил свою потребность.
Если я это уберу, то после запуска вашего кода создается окно с запросом на создание нового кода. вот с самого начала. мой файл куда я вставил ваш код. и вот результат. соответственно код не применяется
написал: Если напишите словами логику Вашей формулы, то можно и попробовать помочь)
Может я не верно описал задачу... Мне нужно, чтобы при применении макроса, формула(неважно какая, хоть просто суммирование диапазона ячеек в строке) протягивалась автоматически на всю строку до последней заполненной ячейки после добавления новых столбцов с данными(при этом все ячейче новых столбцов будут заполнены).
написал: Я прислал пример оно не так работает в Листе Стало?
Спасибо за пример, но, к сожалению, либо мое серое вещество уже настолько размягчилось, либо еще что, но не понимаю как запустить код? При нажатия на запуск появляется диалоговое окно о создании нового кода. Но вставив в него ваш пример программа ругается
Sanja написал: Протягивать формулы макросом - это моветон) То есть это недопустимо? Или какие ограничения для моей "хотелки"?У меня есть уже пример макроса. Но он работает некорректно:написан таким образом, что после его применения формула протягивается на все строки диапазона, а не "фиксируется" в одной строке(как в моем примере). Если получится оптимизировать код под мою задачу-буду благодарен.
Скрытый текст
Sub StretchFormula() Dim ws As Worksheet Dim lastCol As Long Dim lastRow As Long Dim i As Long Dim newFormula As String ' Указываем лист, с которым работаем Set ws = ThisWorkbook.Sheets("БЫЛО") ' Находим последнюю строку и последний столбец с данными lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column ' Проверяем, если последний столбец больше P (16-й столбец) If lastCol > 16 Then ' Проходим по каждой строке For i = 2 To lastRow ' Обновляем формулу для текущей строки newFormula = "=COUNTIFS(I" & i & ":" & ws.Cells(1, lastCol - 1).Address(False, False) & i & ",0,J" & i & ":" & ws.Cells(1, lastCol).Address(False, False) & i & ","">0"")+(COUNTIFS(I" & i & ":" & ws.Cells(1, lastCol - 1).Address(False, False) & i & ","">0"")>0)*(" & ws.Cells(1, lastCol).Address(False, False) & i & "=0)*(" & ws.Cells(1, lastCol).Address(False, False) & i & "=0)" ' Применяем новую формулу к ячейке в столбце C текущей строки ws.Cells(i, "C").Formula = newFormula Next i End If End Sub
Sanja, данная формула считает периоды отсутствия продаж у товара. Чем она плоха? Последние данные в формуле считают также последние же периоды, когда товар не продавался. Критику по формуле не принимаю, т.к. писал ее не я и очень признателен и благодарен участнику форума, который ее написал.
Здравствуйте! Помогите пожалуйста сделать следующее.
Есть таблица с данными. И формула, которая эти данные суммирует. Нужно написать код, по применении которого, формула бы протягивалась до последнего столбца с данными если мы добавим эти данные в столбцы. В примере два листа:как было до применения кода и как должно быть после (формула уже протянута до последней ячейки)
Есть таблица, в которой на листе "продажи" отражен список товаров. НА листе "заказ" внесены данные о днях заказа и количествах заказываемого товара. Нужно чтобы на лист "продажи" подставлялись данные о дате заказа и кол-ва заказа из листа "заказ" если найден код товара. Если у товара два и более раз был заказ, то дни заказа и заказываемое кол-во проставлялись через запятую.
МатросНаЗебре, спасибо, все работает! Если не сложно, можно добавить сюда же еще для одной кнопки, при нажатии на которую будут "очищаться" ячейки столбцов А и Е(чтобы не удалять их каждый раз вручную перед вставкой новых кодов товара)