|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2013 - Подскажите функцию для excel |
|
2013 - Подскажите функцию для excel
|
Ветеран Сообщения: 531 |
Профиль | Отправить PM | Цитировать
Здравствуйте подскажите возможно ли сделать следующее....
есть сверху большая таблица и снизу две мини таблицы (пример): 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 |
Ветеран Сообщения: 531
|
Профиль | Отправить PM | Цитировать a_axe, Спасибо, только хотелось бы, чтобы данные постоянно пополнялись, а не переносились всегда на новый лист.. т.е. набрал я одну таблицу, запустил макрос, она объединилась с большой, потом еще сделал маленькую, опять запустил макрос... большая таблица опять пополнилась и т.д.
corbis, Спасибо.. как я понял в результирующую таблицу пополняются только те данные, которых нету, а так же написано, что нужно очищать каждый раз таблицу. т.е. пополнять ее каждый раз не удастся. Дали мне вариантик.. единственное тут сделано не вертикально, а горизонтально... т.е. пополняемая таблица (большая) справа, а маленькие будут создаваться слева. Кому интересно прикрепил. |
Последний раз редактировалось Alexander_88, 16-10-2015 в 09:28. Отправлено: 16:12, 29-09-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать Можно сделать пополняемую (в тех. задании слишком мало информации). Мне показалось, что на отдельных листах практичнее, ибо если маленькие таблички начнут превращаться в таблицы побольше..
|
Отправлено: 16:39, 29-09-2015 | #12 |
Ветеран Сообщения: 531
|
Профиль | Отправить PM | Цитировать да, надо было больше инфы дать.... люди заказывают товар каждый день (заказ это маленькая таблица). потом через месяц нужен единый отчет по заказам (большая таблица)
|
Отправлено: 16:58, 29-09-2015 | #13 |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать Смысл примерно понятен. Может тогда сделать, чтобы на каждый месяц свой отчет был (в отдельном листе), а не в одну таблицу всё сгружать?
потом ведь не разгрести.. |
Отправлено: 17:38, 29-09-2015 | #14 |
Динохромный Сообщения: 690
|
Профиль | Отправить PM | Цитировать Цитата Alexander_88:
Цитата Alexander_88:
Вы определитесь, что вы хотите, сложно получить подходящий результат, если не знаешь, что нужно делать . Вот другой код, с оговорками: данные вашей "основной" таблицы располагаются на листе в столбцах 1-4, заголовок таблицы в строчке 1. Новые данные вы набиваете ниже основной таблицы в соответствующие ячейки, запускаете код, происходит сортировка, при этом нижние строки с совпадающими позициями станут пустыми, их значение будет перенесено в строки выше. Пустые строки не удаляются, так как не известно, что будет справа от вашей таблицы. Выделять ничего не требуется, проверка идет по столбцам 1-4 активного листа. Скрытый текст
Public Sub data_exist_extr() Dim objCell As Object, targetSheet As Object, dataSheet As Object Dim i As Integer, j As Integer Dim Flag As Boolean Set dataSheet = ThisWorkbook.ActiveSheet 'Set targetSheet = ThisWorkbook.Sheets.Add 'dataSheet.Activate For i = dataSheet.UsedRange.Row + dataSheet.UsedRange.Rows.Count - 1 To 1 Step -1 If dataSheet.Cells(i, 1).Value <> "" Then For j = i - 1 To 1 Step -1 If dataSheet.Cells(j, 1).Value = dataSheet.Cells(i, 1).Value And dataSheet.Cells(j, 2).Value = dataSheet.Cells(i, 2).Value Then If dataSheet.Cells(i, 3).Value <> "" Then dataSheet.Cells(j, 3).Value = dataSheet.Cells(j, 3).Value & "+" & dataSheet.Cells(i, 3).Value If dataSheet.Cells(i, 4).Value <> "" Then dataSheet.Cells(j, 4).Value = dataSheet.Cells(j, 4).Value & "+" & dataSheet.Cells(i, 4).Value dataSheet.Range(Cells(i, 1), Cells(i, 4)).Value = "" Exit For End If Next j End If Next i Set dataSheet = Nothing End Sub |
||
Отправлено: 18:41, 29-09-2015 | #15 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|