Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/10: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Oliver

Избавление от повторяющихся столбцов и строк (Excel)

18.08.2011, 14:27. Показов 2178. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Люди добрые, помогите. Руководством поставлена задача из неприличной базы данных в Екселе, содержащей повторяющиеся поля (в частности названия цехов завода) и повторяющиеся записи (коды статей расходования денежных средств, ну и сами суммы, конечно), сделать приличную, т.е. которая не содержит повторений.
Функция {сумм(если(и т.д.))} не работает, или вернее работает некорректно, потому что необходимо суммировать не по одной строке или полю, а по массиву. По-моему, алгоритм прост до невозможности вроде того, что пока есть совпадения в базе данных то давай ищи их, суммируй и вставляй в заданное совпадение в другом листе, как закончились совпадения, так и циклу конец. Знал бы я синтаксис вижуал бейсик, сам бы написал, но к сожалению я его не знаю. Будьте добры помогите такую пользовательскую функцию написать, буду очень признателен.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.08.2011, 14:27
Ответы с готовыми решениями:

Избавление от повторяющихся чисел Random.Next
Моя проблема заключается в том, что при генерации большого количества чисел при помощи For Next множество из них повторяются, а мне эти...

Количество строк и столбцов в Excel
Всем доброго времени суток.Столкнулся с проблемой чтения из файла excel,а именно определением количества НЕПУСТЫХ строк и столбцов на...

Удаление столбцов и строк в нескольких файлах Excel
Здравствуйте многоуважаемые форумчане! Возникла небольшая задача помогите решить: В папке (например, 123) находятся несколько файлов excel....

17
Ghost
18.08.2011, 15:30
перегони данные в Access или в SQL и выбери запросом.
Один запрос с DISTINCT все решает.
Comanche
18.08.2011, 19:18
кажись, можно и через pivot tables - Эксель же должен объединить при формировании 'под-итогов'...
Oliver
18.08.2011, 19:19
Не, не круто не фига. Надо именно в Excel, дело принципа (руководству не решение надо, а сам процесс)

P.S. Я не программер, а экономист, поэтому, если чего переспрошу чайниковское не обессудьте.
Oliver
18.08.2011, 19:25
Для дальнейшего использования. Я эту задачку решил легко штатными средствами Екселя используя ту же функцию суммесли и сводную таблицу для избавления от дублирования строк, но их это не удовлетворило, с тем аргументом, что некрасиво и громоздко.
Messir
18.08.2011, 20:21
> но их это не удовлетворило, с тем аргументом, что некрасиво и громоздко.

для удовлетворенности пускай помедитируют над дистрибутивом SQL Server'а или Оракла...
Oliver
19.08.2011, 07:15

Ну а все-таки, можно такую пользовательскую функцию написать или макрос?
Сумрак
19.08.2011, 10:44
можно все.. что работает на ПК
Я все же бы остановился на АДО. Средстваими запроса.
Ну а Вам...
В простом случае как Ghost...
Нью База в Access
Внешние данные - таблица из Excell(Импорт)
Создать Запрос. интуитивно понятным конструктором Access.
Сохранить запрос в этой БД.
Далее. новая книга в Excell,
меню - внешние данные из новосозданной БД из Запроса.
Красиво вставил, красиво оформил.
И К ужину приподнес боссу как плод тяжолого кропотливого дневного труда.
Это если. чтоб код не писать.
Возможно ..так... не пробовал.. но предполагаю.
все тоже самое, до вставки внешних данных, в лист
Но надо посмотреть в режиме SQL текст запроса вБД. и модефицировать его под запрос для листа В нужной книге Данных.
___
Но верочный, через Адо обратится к листу с данными снять с его нужную инфу через запрос, и вставить эти данные на лист(можно новый). Прописать это в Ачто макросом и сохранить как темплайт, и теперь на базе этого темлайта будет постоянно актуальный запрос к Вашей Бд.
Ghost
20.08.2011, 00:21
2 Oliver
функцию написать-то можно - не вопрос. Самый тупой способ - закачать все данные в массив и отсортировать его, заодно выкидывая дубли.
Вообще или ты что-то недоговариваешь, или (уж извини) тупит твое начальство.
есть такой шикарный армейский анекдот про подметание ломом платца - 'мне не нужно, чтобы было чисто, мне нужно, чтобы вы зае^%$#@*!'. Вот и здесь пахнет тем-же. Ты уж извини, но я привык решать задачи самым экономичным способом. Есл разовое решение - то самым экономичным с точки зрения разработки, если это постоянная процедура - то самым экономично развиваемым и поддерживаемым. (заметь - слова 'быстро' тут нет)

И инструменты надо выбирать тоже исходя из каких-то критериев. (посмотри 'Ронин' с де Ниро - он там хорошо на эту тему сказал). А если критерий - платц ломом подметать (+ см. выше) ... подметай сам, без меня.
Без наездов и намеков, с наилучшими пожеланиями. Have a nice sex ))
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
21.08.2011, 14:30
Покажи пример того, что есть и того, что должно получиться.
mmos@au.ru
0
Oliver
22.08.2011, 07:41
Неприличная база данныхю. Дубли здесь ни при чем. Повторяются не данные, а поля и строки. Вот пример

Наименование Цех Т-1 Цех Т-2 Цех Т-1 Цех Т-2
статьи расхода
денежных средств

121 10 5 20 10
122 15 15 5 1
121 4 10 15 5
122 1 2 4 15
Oliver
22.08.2011, 07:42
2 mmos. Черт, не получилось. Перешлю на е-mail.
Oliver
22.08.2011, 08:35
Поеду-ка я книжку покупать. В конце концов самообучаться тоже надо когда-то
Подскажите какую купить, чтобы 'чайник' разобрался и толк от нее был, а то как-то попробовал почитать книжку не своего уровня подготовки, так дальше первой страницы не продвинулся ))
Сумрак
22.08.2011, 18:20
Книжка. не факт. можно и без книжки... в программировании главное задачу поставить. А какмими средствами ее выполнить...(доступными). Если не можешь поставиь задачу. книги тебе не помогут.
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
22.08.2011, 19:44
Вот тебе решение (проверенное).
Скопируй эту процедуру в модуль листа с неправильной базой данных.
Выполни двойной щелчок на любой ячейке листа (но не между ячейками).
Произнеси 'Эни-бени-раба' (3 раза) и мысленно щёлкни хвостом.
Получишь правильную базу данных.
Советую перед экспериментом сделать резервное копирование.
Всё отработает правильно, если твоя база данных расположена на листе точно так же, как в присланном тобой примере.
Если это не так, то придётся менять некоторые константы.
Желаю успехов.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim StartR As Long, R As Long, StartC As Integer, C As Integer
  Cancel = True
  StartR = 2 'объединяем строки
  Do While Cells(StartR, 2) <> ''
    R = StartR + 1
    Do While Cells(R, 2) <> ''
      If Cells(R, 2) = Cells(StartR, 2) Then
        C = 3
        Do While Cells(1, C) <> ''
          Cells(StartR, C) = Cells(StartR, C) + Cells(R, C)
          C = C + 1
        Loop
        Rows(R).Delete
      Else
        R = R + 1
      End If
    Loop
    StartR = StartR + 1
  Loop
  StartC = 3 'объединяем столбцы
  Do While Cells(1, StartC) <> ''
    C = StartC + 1
    Do While Cells(1, C) <> ''
      If Cells(1, C) = Cells(1, StartC) Then
        R = 2
        Do While Cells(R, 2) <> ''
          Cells(R, StartC) = Cells(R, StartC) + Cells(R, C)
          R = R + 1
        Loop
        Columns(C).Delete
      Else
        C = C + 1
      End If
    Loop
    StartC = StartC + 1
  Loop
End Sub
0
Oliver
23.08.2011, 06:49
)
Эни-бени-раба, хи-хи!
Спасибо.
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
23.08.2011, 11:55
Хоть бы написал, получилось или нет?
Я же подозревал, что хвостом щёлкнуть забудешь. Так и вышло.
0
Oliver
04.01.2012, 07:35
Дык как еще щелкать-то? Скажи - щелкну Усе работает! Еще раз спасибо
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.01.2012, 07:35
Помогаю со студенческими работами здесь

Перенесение/транспортировка данных из строк в несколько столбцов в Excel
Помогите, пожалуйста. Есть документ Exel, где в один столбец записаны адреса. Количество строк в этом столбце- несколько тысяч. Нужно...

Избавление от лишних пустых строк
Есть &lt;STRONG&gt;textarea&lt;/STRONG&gt; с атрибутом &lt;STRONG&gt;wrap&lt;/STRONG&gt; и его параметром равным &lt;STRONG&gt;soft &lt;/STRONG&gt;в него заносятся данные и...

Как сделать количество столбцов и строк конечным?, MS Excel 2003
При расширении столбцов значком с 2-мя стрелками, количество столбцов на экране уменьшается и при этом нельзя продвинуть бегунок вправо....

Создать документ похожий на Excel таблицу с форматированием строк и столбцов
Подскажите,пожалуйста, нужно с помощью C# создать документ похожий на excel табличку. колонки,ячейки и т.д. Но лезть в excel не хочется....

Запрет на удаление/довабление строк/столбцов в Excel - есть такое понятие?
Если есть, то будьте добры провести курс для чайника... Спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru