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

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

18.08.2011, 14:27. Показов 2142. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru