0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 30

Формирование столбца, по данным из других столбцов

29.04.2015, 12:23. Показов 1721. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, не сказать что у меня проблема, скорее затруднение.
Дана таблица с числовыми значениями, около 2000 строк.
Задача:
Умножить значение столбика G на значения столбика М и сравнить с данными столбика L, если равны то записать в столбик N 1, если не равны то записать 0.
Программа работает, но очень медленно, если выбрать диапазон строк >150 то программа просто зависает, в пределах 30-ти строк еще терпимо.
Код:
Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub макрос3()
Dim kol As Range, cm As Range, os As Range, rez As Range
For Each kol In Range("G14:G50")
For Each cm In Range("M14:M50")
For Each os In Range("L14:L50")
For Each rez In Range("N14:N50")
If kol.Value * cm.Value = os.Value Then
rez.Value = 1
Else
If kol.Value * cm.Value <> os.Value Then
rez.Value = 0
End If
End If
Next
Next
Next
Next
End Sub

Подскажите как можно ускорить работу программы?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.04.2015, 12:23
Ответы с готовыми решениями:

Формирование Excel файла по данным из DataGridView
Добрый день. Моей задачей было создать такой функционал чтоб при нажатии на кнопку, данные которые занесены в GridView автматически...

Формирование отчета по вводимым с клавиатуры данным
есть таблица с полями: Номер сотрудника Фамилия сотрудника ... требуется сформировать полный отчет по сотруднику при вводе данных с...

Формирование контроллов по данным из текстового файла
всем доброго времени суток. сразу оговорюсь, в C# я полный новичек, поэтому просьба выражаться более понятным языком:) Ну и сразу вопрос....

5
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2015, 13:10
А зачем 4 вложенных цикла? Достаточно одного. Или формулу в N14 и тяните вниз:
Code
1
=--(G14*M14=L14)
0
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 30
29.04.2015, 15:08  [ТС]
немного проще стало, записал макрос изменяя в ручную 2 клетки.
Получился макрос:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
Sub макрос5()
 
    Sheets("14.7.").Select
    Range("N14").Select
    ActiveCell.FormulaR1C1 = "='14.3.'!RC[-9]*'14.7.'!RC[-1]"
    Range("O14").Select
    ActiveCell.FormulaR1C1 = "=--(RC[-1]=RC[-3])"
  
End Sub

Подскажите как его применить ко всему столбику?
При изменении Range Х1:Х10 все равно изменяет только 1 строку
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2015, 15:42
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Так вроде
Visual Basic
1
2
3
4
5
Sub макрос5()
 
Sheets("14.7.").Range("N14:O24").FormulaR1C1 = Array("='14.3.'!RC[-9]*'14.7.'!RC[-1]", "=--(RC[-1]=RC[-3])")
  
End Sub
1
0 / 0 / 0
Регистрация: 02.07.2013
Сообщений: 30
29.04.2015, 15:54  [ТС]
Ура, наконец-то)
Правда пришлось немного поправить, но все же, СПАСИБО!
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
Sub Макрос5()
  Sheets("14.7.").Range("N14:N200").FormulaR1C1 = Array("='14.3.'!RC[-9]*'14.7.'!RC[-1]")
  
  Sheets("14.7.").Range("O14:O200").FormulaR1C1 = Array("=--(RC[-1]=RC[-3])")
End Sub
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.04.2015, 18:21
hopeantip, если вводите одну формулу, Array не нужен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.04.2015, 18:21
Помогаю со студенческими работами здесь

Формирование дерева TreeView по данным из текстового файла
Подскажите пожалуйста, есть текстовый файл &quot;menu.txt&quot; котрый можно редактирорвать вручную в виду его частых дополнений, сам файл...

Формирование дерева Treeview по данным из бд или excel
Как это осуществить?

Парсер XML по данным из других файлов
Здравствуйте,у меня есть два файла примерно такого вида Файл 1xml &lt;Object Angles=&quot;0,-0,-45.000004&quot; dir=&quot;225&quot;...

Заполнить таблицу по данным других таблиц?
Всем привет! Мне нужно заполнить таблицу по данными из других таблиц. Я пытаюсь сделать, это таким образом. Но таким образом не...

Доступ к данным класса из других классов
Здравствуйте, я уже день мучаюсь над вопросом. У меня есть class MonitorFollderClass { public static Queue...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru