То, что нужно! Спасибо!
Как сделать так, чтобы все операции по определенному товару отражались в остатке этого товара на другом листе
Как сделать так, чтобы все операции по определенному товару отражались в остатке этого товара на другом листе
31.12.2017 18:38:55
Всем привет и с наступающими праздниками! Описываю подробно, с чем не могу справиться. Буду признателен за помощь.
Есть таблица с 2мя листами (ссылка на 1. На первом товары и их фактический остаток 2. Операции по приходу/расходу товаров Как сделать так, чтобы при добавлении каждой новой операции на Листе 2, изменения остатка отображалось на Листе 1 у соответствующего товара? Операции всего 2: приемка, отгрузка, но с высокой степенью периодичности. Хочу сделать выпадающий список по типу операции, чтобы при добавлении новой, на Листе 1 автоматически пересчитывался остаток соотевтствующего товара. Заранее спасибо! |
|
|
Добавление пустых строк между диапазонами заполенных
Добавление пустых строк между диапазонами заполенных
Удалить все ячейки с длиной строки больше указанного значения
Удалить все ячейки с длиной строки больше указанного значения
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
20.03.2015 15:47:54
Максим, все абсолютно верно, единственное что, в конце каждой ячейки каждого блока лишний только символ "\", если придерживаться тех способов, которыми оперировал я, а именно сцеплять после редактирования строки, а после разъединять по равномерно по ячейкам в столбец все так же) Чтобы случайно не объединились какие-либо из групп значений...
А так все верно понимаете, главное, что стоит учесть: столбцы имеют одинаковые значения лишь в примере и кол-во их тоже косвенное, они всегда разные и быть их может до 1500, поэтому необходима автоматизация процесса). А вот что касается длины столбцов, все верно... изначально выгрузка в 17 ячеек одного столбца, а после редактирования 16 ячеек в каждой по 16 групп значений, разделенных пробелами. Доп опции, если более детально, для того, чтобы можно было маневрировать с столбцами, устанавливать расстояние между ними в нужное кол-во ячеек (в столбик), удаление в первой ячейка столбца, например не 5 групп значений и одного пробела лидирующего, а 3 значений и того же пробела или замена значения на другое, например. Доп опции не прошу разрабатывать конечно, если конечно это не так сложно и у кого-нибудь найдется лишнее время, было бы просто действительно очень круто реализовать, например ТОП-3: 1. Кол-во пустых строк между столбцами 2. Кол-во необходимых для удаления символов первой и последней ячейки столбцов и порядок удаления конечно (лево, право) 3. Отделение нужной инфо от ненужной как писал выше) СПАСИБО за обратную связь!!! |
|
|
Автоматизация процесса преобразования элементов
Автоматизация процесса преобразования элементов
20.03.2015 15:18:42
Добрый день, уважаемые профессионалы excel. Необходима ваша помощь в написании макроса под конкретную задачу. Фактически задача выполнена формулами, однако есть такие элементы решения, которые, к сожалению, не могу автоматизировать, например, спец. вставка - значения от конкретного массива. Да и в целом, это не суть, макрос в данном случае будет куда более рациональным решением всех бед. Задача только кажется большой, на самом деле я, полный 0 в excel, решил все формулами за 30 минут. Пример, конечно прикреплен. Однако, тезисно опишу критерии задачи и используемые формулы по шагам:
Итак... 1. Имеется конкретный массив, который выгружается именно таким способом как показано в примере, а именно 3 ячейки с информацией перед началом первого столбика со значениями 16-иричной системы счисления и 2 пустые ячейки после, далее 3 с информацией перед 2-ым столбцом данных и 2 после и т.д. Информация между столбцами не важна, ее в конечном итоге быть не должно, как и информации в соседних колонках. *** Первым делом удаляем информацию в соседних колонках, копируемую в них автоматически из исходника, так как они ни коем образом не влияют на содержимое наших блоков с данными в 16-иричной системе. 2. Отделяем блоки от информации, которая находится между ними в 3-ех ячейка сверху каждого блока, можно сразу конечно сократить и расстояние между самим блоками до 1-ой пустой ячейки, как вариант... Не принципиально. Информацию отделяем предельно просто: в соседнем столбце в ячейке напротив первой ячейки с данными блока ставим ="этой самой ячейке" и растягиваем до конца первого блока, после чего выделяем новый блок с уже скопированными данными первого блока исходника, только выделяем его включая пустой массив этого нового столбца ровно до начала второго столбца исходника напротив, чтобы не копировалась ненужная информация между блоками. Как итог: отделенные нужные блоки в новом столбце. *** И вот здесь возникает вопрос: пробовал записывать макрос и он, само собой разумеющееся, растягивание диапазона описанным выше способом воспринимает буквально, задает конкретный диапазон, однако исходник может быть длиннее, соответственно нужно чтобы макрос анализировал диапазон и устанавливал растягивание до последней строки последнего блока исходника только конечно в столбце рядом, чтобы исходник остался. Опять же, когда нужно чтобы макрос учитывал длину необходимого выделения перед растягиванием. Возможно я здесь облегчу вам жизнь, сказав, что каждый столбец с данными имеет одинаковую высоту (количество ячеек в столбике) и расстояния между столбцами фиксированы, что значит, видимо, можно просто обозначать выделение конкретного массива фиксированным диапазоном а далее уже как-то растягивать до конца) 3.После этого необходимо в каждой ячейке каждого столбца убрать символ "\", главное оставляя один пробел в конце каждой ячейки. Тут просто все: "заменить". 4. Далее необходимо избавиться от пробела перед первым символом в первых ячейках каждого столбца. Тут формулой =ЕСЛИ(ЛЕВСИМВ(**)=" ";ПСТР(**;2;ДЛСТР(**)-1);**), но предварительно я отделял каждую первую ячейку каждого столбца в новый столбец по принципу пункта 2, а именно: выделяем эту самую ячейку + массив-столбец до ячейки перед первой ячейкой второго столбца и растягиваем, опять же чтобы копировались только первые ячейки каждого столбца. 5. Пункт 4 можно было и обойти, я так понимаю, потому что дальше нужно убрать в каждой первой ячейке каждого столбца 5 первых значений (пробел можно было включить в общее кол-во символов эти 5 первых значений, ибо каждое из значений также разделяется пробелом), и в каждой последней ячейке каждого столбца 1 последнее значение. Здесь использовал ПСТР для первой ячейки и ЛЕВСИМ для последней. Это все делал также в отдельном столбце и получил по итогам столбец с первой ячейкой далее в столбец пустые ячейки до последней, там как и должно быть информация последней ячейки только уже измененная согласно последним корректировкам. Середину первого нового столбца заполняем ="**", так как значения середины столбца не меняются. А после выделяем столбец с захватом массива пробелом между вторым столбцом и растягиваем до конца. Снова натыкаемся на необходимость установить в макросе значения переменной длины столбца. 6. Так как мы урезали первую ячейку каждого столбца на 5 значений или, с учетом пробелов, включая и пробел перед первым значением, на 16 символов, а последнюю ячейку на 2 символа (пробел после предпоследнего символа оставили для последующего сцепления с другими столбцами) у нас получились неравномерные столбцы, то есть кол-во значений в первой ячейке меньше чем во всех до последней. Нужно чтобы в каждой ячейке было по 16 значений с пробелами, общая сумма столбца 256 байт. Тут я начал корректирование также с первого столбца. Использовал сцепление всех ячеек столбца, чтобы потом его разбить на равные части. Сцепил строчкой выше чтобы не нарушать положение столбца (чтобы располагался все также ровно напротив исходника), а дальше формировал каждую ячейку первого столбца ПСТР и ЛЕВСИМ для уравнивания, главное нигде не потерять пробел между значениями, чтобы не геморроится потом с разбивкой. 7. Получил итог: первый столбец - 16 ячеек в столбик, в каждом по 16 значений. Растягиваем (включая в выделение массив пустых ячеек в столбце) на всю высоту и получаем предварительный итог. Работа над структурой закончена. 8. Удаляем пустые строки между столбцами, все либо одну оставляем между столбцами, и вот собственно конец)) Единственное что столбец уже должен быть выделен на копирование))) Было бы конечно прекрасно выделить некоторые значения (шаги) как дополнительные опции, которые можно было бы просто забивать в макрос или в выведенное окно на лист (приоритетнее конечно). Доп. опции типа удаление определенного количества символов, значений первой строки, последней строки и в каком порядке удалять (с конца или с начала), возможно даже доп опция установки значений для п.1 при первом отделении нужной информации от ненужной, например с какой строки начать и с каким интервалом отделять и формировать в новом столбце, например НАЧИНАЕМ С 2 СТРОКИ - ОТДЕЛЯТЬ С ИНТЕРВАЛОМ В 5 СТРОЧЕК (ЯЧЕЕК СТОЛБЦА) - УКЛАДЫВАТЬ В СТОЛБЕЦ ** С ИНТЕРВАЛОМ В 1 ЯЧЕЙКУ СТОЛБЦА, еще может очищение определенных столбцов скопированных из исходника. Пункты можно скопировать в excel при работе, чтобы легче было работать с информацией) Помимо всего прочего, буду признателен, если поделитесь комментариями к каждому макрос-коду, описывающему каждый шаг, а именно: почему задаем то или иное значение, или что значит тот или иной код. В случае, если это куда сложнее, чем скинуть материал для самостоятельного изучения, буду не менее признателен, ибо понимаю сколько геморроя составить описать каждый шаг, и имеет ли это в принципе смысл при возможности поделиться источником для изучения. P.S. В макросах я полный 0, но дико горю желанием изучить эту функцию excel, помогите чайнику познать азы и источники совершенствования... Заранее ОГРООООМНООООЕ спасибо! |
|
|
Формула для перемещения массива данных с заданным интервалом
Формула для перемещения массива данных с заданным интервалом
11.03.2015 15:14:14
Подскажите пожалуйста, а если я хочу, чтобы отступ между блоками был больше 1 ячейки?
И есть ли возможность как-нибудь соединить между собой столбцы по след. примеру? (+ Текстом кратко: столбец А содержит данные, размещенные через строчку, столбец В аналогично, но на строчку ниже данных столбца В. Их необходимо объединить в столбце А, чтобы данные были записаны в обычном порядке в одном столбце, то есть 1-ая строчка значение столбца А, вторая В и так далее) Заранее спасибо! |
|
|
Формула для перемещения массива данных с заданным интервалом
11.03.2015 14:26:51
Знал. что макросом это будет гораздо проще сделать, однако не имею, к сожалению, ни малейшего понятия, как образом что делать) По этой причине, могу лишь уповать на формулы... Однако, я так понимаю, на данный момент для данного примера это готовый макрос? И как добавить диапазон, чтобы считать весь горизонтальный массив, если он, например идет с А1 до, например, X500.
Большое спасибо! |
|
|
Формула для перемещения массива данных с заданным интервалом
11.03.2015 14:13:12
Ребята, привет всем. Есть задача, над которой битый час бьюсь. И все же решил наконец, в целях экономии времени, написать.
Есть данные в столбце A, каждое в своей ячейке, аналогично со столбцом B (взял 2 столбца для примера. всего их порядка 500). Так вот... Необходимо расположить данные из столбца В в столбец A только с промежутком между имеющими данными А и вставляемыми В в одну пустую ячейку. Все это конечно можно делать вручную, но боюсь тогда придется как минимум купить себе после очки) Буду признателен за помощь) |
|
|