![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2013 - Подскажите функцию для excel |
|
|
2013 - Подскажите функцию для excel
|
Ветеран Сообщения: 558 |
Здравствуйте подскажите возможно ли сделать следующее....
есть сверху большая таблица и снизу две мини таблицы (пример): A B C D 90 Яблоки 5,6+4,6+9,6+10,5+15,0 45,3-5-6,5-9,6-6-8,3 150 Груши 5,6+4,6+9,6+10,5+15,0 45,3-5-6,5-9,6-6-8,3 350 Финики 5,6+4,6+9,6+10,5+15,0 45,3-5-6,5-9,6-6-8,3 Необходимо добавить мини таблицы к большой таблице. Притом, если совпадают первый и второй столбец, то третий и четвертый столбцы добавлялись друг к другу.... третий столбец добавлялся через знак + а четвертый через знак + Т.е. объединив мини таблицы с большой, должна получится такая таблица |
|
Отправлено: 20:38, 27-09-2015 |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать На счет функции не уверен, а вот макросом можно замутить.
Не понятно: 1. как соединяются столбцы при совпадении. 2. размеры таблиц. Хорошо бы файл с таблицами.. |
Отправлено: 09:14, 28-09-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Динохромный Сообщения: 712
|
Профиль | Отправить PM | Цитировать Alexander_88, предполагается, что на форуме создается только одна тема (без дублирования) на каждую из проблем.
Alexander_88, приложите файл с таблицами, так как Вы их видите. Сводить таблицы можно в том числе и консолидацией, но для этого необходимо понимать структуру Вашей таблицы. |
Отправлено: 13:27, 28-09-2015 | #3 |
Ветеран Сообщения: 558
|
Профиль | Отправить PM | Цитировать Поправка.. как третий так и четвертый столбец должны сцепляться через знак +
Номера строк различные, я могу сам выделять данные, которые нужно объединять (если первый и второй столбец совпадает, сцеплять третьи и четвертые столбцы таблиц через знак + Если не совпадает, то просто добавлять четыре столбца ниже). Также должны игнорироваться пустые ячейки. Сделал небольшой пример, два листа, исходный (с данными до применения ф-ции) и результирующий (с данными после выполнения функции). Желательно и удобно, чтобы объединение происходило с помощью кнопки.. т.е. я выделяю весь диапазон, который требуется объединить (на примере исходного листа это диапазон от ячейки А2 до ячейки D21), нажимаю эту кнопку и должно получиться то, что мы видим в листе "Результат". |
Последний раз редактировалось Alexander_88, 16-10-2015 в 09:28. Отправлено: 14:56, 28-09-2015 | #4 |
Ветеран Сообщения: 558
|
Профиль | Отправить PM | Цитировать Если исключить пустые ячейки проблематично, я могу создавать таблицы слитно, т.е. будет одна большая таблица.. я выделю ее, нажму кнопку и произойдет слияние
|
|
Отправлено: 18:03, 28-09-2015 | #5 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Alexander_88:
Можно ли две маленькие вынести на отдельные листы? И ещё мне интересно, есть ли предельное количество строк для трёх таблиц, верхней и двух нижних? Например, можно уложиться в 100 строк и знать что 101-й не будет или же это неизвестно? |
|
------- Отправлено: 21:56, 28-09-2015 | #6 |
Ветеран Сообщения: 558
|
Профиль | Отправить PM | Цитировать Цитата Drongo:
Цитата Drongo:
Цитата Drongo:
![]() |
|||
Отправлено: 22:14, 28-09-2015 | #7 |
Старожил Сообщения: 369
|
Профиль | Отправить PM | Цитировать Alexander_88,
сделать можно но есть наводящие вопросы: в второй и третьей таблице - есть повторяющиеся записи - например "яблоки" 10, а чуть ниже "яблоки" 25. Тоесть - "посчитанные (перенесенные в первую таблицу ) данные по каждому из фруктов можно удалять из 2 и третьей таблицы или менять их нельзя и хранить как оригинальные данные? алгоритм - прост: цикл 1 - построчный опрос и запоминание значений (в переменные) по столбцам "А" и "В" в первой таблице, а внутри этого цикла - ещё два цикла по опросу и запоминанию значений (в переменные) второй и третей таблицы - потом сравнение на предмет совпадения переменных - если да - то где надо сплюсовать или вычесть - если нет - пропускаем. ![]() |
Отправлено: 01:07, 29-09-2015 | #8 |
Динохромный Сообщения: 712
|
Профиль | Отправить PM | Цитировать Alexander_88, насколько я понял вашу мысль, вам не нужно суммировать цифры, на выходе должна быть текстовая строка, в которой через знак "+" перечисляются цифры, то есть например "8.7+6.89", а не их сумма 15.59. Попробуйте код ниже. Оговорки: таблицы должны находится на одной странице, интересующие вас данные выделяете мышкой и запускаете код, результат будет помещаться каждый раз на вновь созданный лист.
Код
Option Explicit Public Sub data_extr() Dim objCell As Object, targetSheet As Object, dataSheet As Object Dim i As Integer Dim Flag As Boolean Set dataSheet = ThisWorkbook.ActiveSheet Set targetSheet = ThisWorkbook.Sheets.Add dataSheet.Activate For Each objCell In Intersect(Selection, Selection.Columns(1)) If objCell.Value <> "" Then i = 1 Flag = False Do If targetSheet.Cells(i, 1).Value = "" Then Flag = True targetSheet.Cells(i, 1).Value = objCell.Value targetSheet.Cells(i, 2).Value = objCell.Offset(0, 1).Value targetSheet.Cells(i, 3).Value = objCell.Offset(0, 2).Value targetSheet.Cells(i, 4).Value = objCell.Offset(0, 3).Value Else If targetSheet.Cells(i, 1).Value = objCell.Value And targetSheet.Cells(i, 2).Value = objCell.Offset(0, 1).Value Then If objCell.Offset(0, 2).Value <> "" Then targetSheet.Cells(i, 3).Value = targetSheet.Cells(i, 3).Value & "+" & objCell.Offset(0, 2).Value If objCell.Offset(0, 3).Value <> "" Then targetSheet.Cells(i, 4).Value = targetSheet.Cells(i, 4).Value & "+" & objCell.Offset(0, 3).Value Flag = True End If End If i = i + 1 Loop Until Flag End If Next objCell targetSheet.Activate Set dataSheet = Nothing Set targetSheet = Nothing End Sub |
Отправлено: 10:24, 29-09-2015 | #9 |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать Вот такой вариант набросал.
|
Отправлено: 11:53, 29-09-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
SSD - безопасно ли для SSD использовать функцию "стирание дисков" в программе CCleaner? | makatuk | Накопители (SSD, HDD, USB Flash) | 8 | 11-09-2013 11:33 | |
2007 - Как добавить функцию в качестве общей для последующего использования в совместном дос | yok | Microsoft Office (Word, Excel, Outlook и т.д.) | 6 | 07-03-2012 13:21 | |
C/C++ - [решено] Поиск слова в тексте,подскажите функцию | VokaMut | Программирование и базы данных | 2 | 10-01-2012 15:09 | |
CMD/BAT - [решено] Как запустить функцию Защиты системы для диска С: ? | wiznv | Скриптовые языки администрирования Windows | 3 | 29-11-2011 16:11 | |
Подскажите функцию в C++ | dimakus | Программирование и базы данных | 2 | 01-04-2004 14:57 |
|