Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Доброй ночи, всем!!! Нужна помощь! Есть две таблицы на разных листах. Необходимо из листа2 считывать информацию о наименовании дисциплины, это столбец "Наименование дисциплины" (Философия, Иностранный язык, и.т.д) и соответствующее количество часов, это столбец "Всего по ГОСу" и сравнивать с информацией на листе1, где также есть столбцы содержащие наименование дисциплины и количество часов. При не совпадении количества часов, выводить наименование дисциплины на лист3. Ну вот, вроде всё! =) Если кто-то знает как это сделать, подскажите пожалуйста! Кстати, я там что-то пыталась делать, макрос Сравнение=))) Буду очень благодарна! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 00:11 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Alisya, А чем вам не нравится ваш макрос (кроме того, что он натыкается на первую пустую строку после заголовка таблицы и выходит из цикла)? В принципе - ТЗ неясно. Вы же умеете программировать, сумейте сформулировать ТЗ - это 90% решения вашей проблемы. А именно - дайте внятную расшифровку понятию " соответствующее ". То ли должны строки совпадать, то ли Row, то ли надо искать на втором листе что-то соответствующее первому листу.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 00:23 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Alisyaэто столбец "Наименование дисциплины" (Философия, Иностранный язык, и.т.д) На втором листе есть столбец "Название дисциплины". Три взятых навскидку названия: Язык и стиль делового общения Основы библиографических знаний Профессиональный иностранный язык Не встречаются на первом листе. Что в этом случае делать? Писать на третий лист несоответствие? Слово "Философия", "Химия" встречаются, но как ЧАСТЬ текста на втором листе. Считается это соответствием? В общем - доработайте ТЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 00:46 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Соответствующее, это значит мы берем поочередно каждую дисциплину из второго листа, возьмем например Философия, смотрим сколько часов ее отведено, это столбец Всего по ГОСу, для философии - 138 часов. Затем переходим на первый лист, находим там дисциплину Философия и количество часов отведенных на предмет, это столбец Всего часов. Если количество часов на листе1 и листе2 не совпадают, для одного и того же предмета, то название этого предмета записывается на лист3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 10:13 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Если названия предметов на втором листе не встречаются на первом, то все равно выводить их на третий лист. Вообще, идея заключается в том чтобы брать информацию из второго листа и сравнивать с первой, а именно название предмета и количество часов. А насчет философии и Химии, я вас не совсем понимаю, я не нашла там строк где бы они являлись частью текста=) Ну вот доработала как смогла=))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 10:20 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Alisyaнаходим там дисциплину Философия и количество часов отведенных на предмет Что такое "находим там"? Я же просил уточнить ТЗ и расшифровать "соответствующее" Хорошо, допустим вы имеете ввиду следующее: Нужно найти во втором столбце на первом листе строку, которая начинается с указанного слова, и двоеточия, остальной текст не важен. Ну, собственно, для этого вам нужен второй цикл внутри уже имеющегося, который будет перебирать все значимые ячейки второго столбца на первом листе и сравнивать их по указанному мной условию (либо с помощью функции Left, либо оператором Like). Я думаю, вам вполне по силам - аналогичный цикл у вас был у вас в предыдущей задаче про перенос ячеек. P.S. Есть вариант вместо цикла использовать поиск (метод Find). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 10:24 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
AlisyaА насчет философии и Химии, я вас не совсем понимаю, я не нашла там строк где бы они являлись частью текста=) На первом листе нет ячеек с текстом "Философия" или "Химия" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 10:26 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Есть и философия, и химия, вот только у философии часов не наблюдается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 10:32 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121Есть и философия, и химия, вот только у философии часов не наблюдается... Я ведь четко сформулировал свой пост. Есть ячейка авторФилософия: предмет философии, место и роль философии в культуре, становление философии, основные направления, школы философии и этапы исторического развития; структура философского знания; учение о бытии, монистические и плюралистические концепции бытия, самоорганизация бытия; понятия материльного и идеального, пространство , время; движение и развитие, диалектика; детерминизм и индетерминизм, динамические и статистические закономерности, научные, философские и религиозные картины мира; человек, общество, культура; человек и природа, общество и его структура, гражданское общество и государство, человек в системе социальных связей, человек и исторический процесс: личность и массы, свобода и необходимость; формационная и цивилизационная концепции общественного развития; смысл человеческого бытия, насилие и ненасилие, свобода и ответственность, мораль, справедливость, право; нравственные ценности, представление о совершенном человеке в различных культурах, эстетические ценности и их роль в человеческой жизни, религиозные ценности и свобода совести; сознание и познание, сознание, самосознание и личность; познание, творчество, практика; вера и знание, понимание и объяснение, рациональное и иррациональное в познавательной деятельности, проблема истины, действительность, мышление, логика и язык; научное и вненаучное знание, критерии научности, структура научного познания, его методы и формы; рост научного знания, научные революции и смены типов рациональности, наука и техника; будущее человечества, глобальные проблемы современности, взаимодействие цивилизаций и сценарии будущего. Но оператором сравнения Sheets(1).Cells(nRow, nColumn) <> Sheets(2).Cells(nRow2, nColumn2) она найдена не будет. Поэтому сразу обращаю внимание автора на это. Что касается отсутствия часов - видимо, это надо обрабатывать так же, как отсутствие строки в принципе, но как - автор не ответила даже после моего вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 10:50 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Да, понял. Я бы сделал частичным поиском - берём всё значение ячейки второго листа и ищем частичное совпадение в колонке первого. Мой универсальный :) ( кто помнит :) ) так ищет, но там задача найти совпадения, а не отличия в других ячейках. Вполне можно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 11:26 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Но если слово например "Физика" встретится в фразе "Физическая культура :физика тела и т.д. культура в общекультурно"... Надо дополнительно проверять на начало строки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 11:31 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121Но если слово например "Физика" встретится в фразе "Физическая культура :физика тела и т.д. культура в общекультурно"... Надо дополнительно проверять на начало строки... Ну либо Left, либо искать с двоеточитем, либо после Find все равно проверять Left- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 11:44 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Вообще - там есть "артикулы" в первом столбце, может логично искать по ним. Правда придется дополнительно обрабатывать незначащий нолик :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 11:47 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Shocker.ProВообще - там есть "артикулы" в первом столбце, может логично искать по ним. И сразу - ГСЭ.Ф.1 нету... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 11:53 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
И вообще там с индексами косяки: Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 11:57 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Да, вы правильно догадались, при отсутствии часов нужно выводить предмет на лист3, как не соответствие. Как вы заметили есть два документа, на листе1 ГОС(государственный образовательный стандарт), на листе2 план, составленный сотрудником. Необходимо выполнить проверку соответствия часов выделенных на изучение дисциплин в плане (столбец Всего по ГОСу), с отведенным в ГОСе (лист1, столбец Всего часов) Я уже незнаю как вам еще объяснить!=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 14:18 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Да вы не мне должны объяснить, а компьютеру. Я уже несколько раз спросил, что должно являться признаком соответствия строк первого и второго листа? Номер строки? Текст? Часть текста? Пока эта задача не будет решена, нет смысла вести речь о сравнении количества часов. Я уже выдвинул предположение, что вы имели ввиду под соответствием строк. Уже предложил алгоритм решения. А вы мне опять про сравнение часов рассказываете. Еще раз. Мы не ведем пока речь о сравнении часов. Мы сейчас пока выясняем, как вы планируете сопоставить строки на первом и втором листе между собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 14:24 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Моя проблема в том, что я понятия не имею как сделать сравнение двух листов. Если бы я могла объяснить это компьютеру...... Мне нужно чтобы из первого листа считывалась информация о названии предмета, и затем на втором листе находилось название этого предмета, как начало строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 14:32 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
AlisyaМоя проблема в том, что я понятия не имею как сделать сравнение двух листов. Если бы я могла объяснить это компьютеру...... Мне нужно чтобы из первого листа считывалась информация о названии предмета, и затем на втором листе находилось название этого предмета, как начало строки. Вот, наконец-то. Собственно, цикл по второму листу у вас есть. Для поиска на первом листе можно использовать метод Find. Либо можете сделать внутренний цикл, который будет перебирать все ячейки и сравнивать их с началом исходной строки примерно так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 14:47 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
AlisyaМне нужно чтобы из первого листа считывалась информация о названии предмета, и затем на втором листе находилось название этого предмета, как начало строки. Кажется вы перепутали тут первый и второй лист, по крайней мере это не соответствует изначальному ТЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 14:48 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Да, точно=) Я уже все перепутала... Наоборот, находим на втором листе и сравниваем с первым! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 14:51 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо за помощь! Попытаюсь сделать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 15:52 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Вот примерно так. Но там на первом листе очень многих дисциплин нет со второго листа. Этот вариант выводит и те, которых нет, и с разницей в часах. Если отсутствующие не надо, уберите Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 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. 39. 40. 41. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2010, 13:14 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Ой! Огромное вам спасибо! =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2010, 19:09 |
|
||
|
Макрос сравнивающий таблицы на разных листах Excel
|
|||
|---|---|---|---|
|
#18+
Небольшой update: люди заводят обычно данные как попало, и например "Философия " <> "Философия", а "Иностранный_язык" <> "Иностранный__язык" (намеренный двойной пробел в посте движок форума умно убрал), поэтому добавил WorksheetFunction.Trim(), что эти ошибки позволяет не замечать (просто Trim() оставляет двойные пробелы внутри фразы). + добавил вывод несовпадающих часов - оказывается, там не совпадает только Инженерная графика и Общая электротехника, у остальных 53 фраз просто нет часов вообще или их нет в листе 1 колонке 2 Ну и раз Trim(), то теперь Dim temp$, temph$ Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2010, 19:27 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36411722&tid=2160239]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 395ms |

| 0 / 0 |
