Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 07.06.2014
Сообщений: 6

Группировка по первому столбцу и суммирование значений элементов второго столбца

07.06.2014, 11:51. Показов 2655. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задали задание, не получается сделать
Нужно задать двумерный массив М

red 3
red 6
black 5
black 9
red 1
blue 6
blue 3
black 11
blue 10
blue 1
black 3
black 2

Ввести значение его элементов и получить массив
TOTAL-M = (group by M<column1>,sum M<column2>) - группировка по первому столбцу и суммирование значений элементов второго столбца по значениям группировок

Добавлено через 29 минут
Перенесите пожалуйста в раздел VBA
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2014, 11:51
Ответы с готовыми решениями:

Сортировка и группировка по первому столбцу И сумма каждого значения второго и третьего столбца
Здравствуйте, нужна помощь в реализации. Есть файл формата: 231,9;3;1 231,9;0;1 232,1;1;0 232,0;1;6 232,1;5;0 232,1;3;5 ...

Найти среднее арифметическое элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу.
Дан двумерный массив размером n*m, заполненный случайными числами. Найти среднее арифметическое элементов, принадлежащих первой строке,...

В прямоугольной матрице найти сумму элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу.
7.6.2. Помогите, пожалуйста, решить задачу в С++. В прямоугольной матрице найти сумму элементов, принадлежащих первой строке,...

9
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
07.06.2014, 13:31
что именно "не получается"?
Цитата Сообщение от DrakGTX Посмотреть сообщение
задать... Ввести... получить
или просто "ниахота"?
0
1 / 1 / 0
Регистрация: 07.06.2014
Сообщений: 6
07.06.2014, 13:37  [ТС]
Впервые работаю с VBA
Что получилось набрать:
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
39
40
41
42
43
44
Option Compare Database
Sub lab9()
Dim vmas(11, 1) As Variant
vmas(0, 0) = red
vmas(1, 0) = red
vmas(2, 0) = black
vmas(3, 0) = black
vmas(4, 0) = red
vmas(5, 0) = blue
vmas(6, 0) = blue
vmas(7, 0) = black
vmas(8, 0) = blue
vmas(9, 0) = blue
vmas(10, 0) = black
vmas(11, 0) = black
 
vmas(0, 1) = 3
vmas(1, 1) = 6
vmas(2, 1) = 5
vmas(3, 1) = 9
vmas(4, 1) = 1
vmas(5, 1) = 6
vmas(6, 1) = 3
vmas(7, 1) = 11
vmas(8, 1) = 10
vmas(9, 1) = 1
vmas(10, 1) = 3
vmas(11, 1) = 2
 
Dim sum(11, 1) As Variant
For i = 0 To UBound(vmas)  
Next i
For j = 0 To UBound(sum)
Next j
Dim sql1 As Variant
sql1 = "create table result (ResultName char ,ResultSum integer)"
DoCmd.RunSQL sql1
DoCmd.RunSQL "INSERT INTO result(ResultName, ResultSum) SELECT ResultName, Sum(ResultSum) FROM result GROUP BY ResultName"
DoCmd.RunSQL "UPDATE result SET ResultSum = ResultSum + " & vmas(11, 1) & " WHERE ResultName = '" & vmas(11, 0) & "';"
DoCmd.OpenTable "result", acViewNormal, acReadOnly
MsgBox "Result work in table. Table close"
DoCmd.Close acTable, "result"
DoCmd.RunSQL ("drop table result")
End Sub
Но данные не выводятся, просто создается таблица.
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
07.06.2014, 14:08
а Вам именно с помощью SQL это надо делать?
и, кстати, в каком приложении?
ибо DoCmd - это, кмк, из таинственного для меня мира access?
0
1 / 1 / 0
Регистрация: 07.06.2014
Сообщений: 6
07.06.2014, 14:11  [ТС]
Нет, как угодно.
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
07.06.2014, 14:23
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
Option Base 1
Sub lab9()
  Const s1 = "red red black black red blue blue black blue blue black black"
  Const s2 = "3 6 5 9 1 6 3 11 1 1 3 2"
  Dim a(12, 2), i&, d As Object, b(), x1, x2, x
  
  Set d = CreateObject("scripting.dictionary")
  x1 = Split(s1): x2 = Split(s2)
  For i = 1 To UBound(a)
    a(i, 1) = x1(i - 1): a(i, 2) = CInt(x2(i - 1))
  Next
  
  For i = 1 To UBound(a)
    d(a(i, 1)) = d(a(i, 1)) + a(i, 2)
  Next
  
  ReDim b(d.Count, 2): i = 0
  For Each x In d.keys
    i = i + 1
    b(i, 1) = x
    b(i, 2) = d(x)
  Next
End Sub
0
1 / 1 / 0
Регистрация: 07.06.2014
Сообщений: 6
07.06.2014, 15:10  [ТС]
Я не успел увидеть ваше обновленное сообщение. Да, это MS Access.

Добавлено через 41 минуту
И этот код просто компилируется и ничего не происходит.
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
07.06.2014, 15:16
а что должно произойти?
Цитата Сообщение от DrakGTX Посмотреть сообщение
и получить массив
массив получен.
что в нём - можно посмотреть в отладчике.
выводить полученный массив куда-либо не требовалось.

пс. access практически не помню - писал кое-что по мелочи ещё в 97-й версии., но, имхо, если это access, то и делать можно на таблицах и запросах. только не спрашивайте меня - как именно
правда, в этом случае я не понимаю - что делает слово "массив" в задании
0
1 / 1 / 0
Регистрация: 07.06.2014
Сообщений: 6
07.06.2014, 15:25  [ТС]
Вот такое задание, написал слово в слово.
Если я правильно понимаю, то результаты группировки и сумм нужно записать в таблицу.
0
1 / 1 / 0
Регистрация: 07.06.2014
Сообщений: 6
10.06.2014, 20:16  [ТС]
Решено.
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Option Compare Database
 
Dim vmas(11, 1) As Variant
 
Sub main_grouping_method()
    
    Dim i As Integer
    
    vmas(0, 0) = "red"
    vmas(1, 0) = "red"
    vmas(2, 0) = "black"
    vmas(3, 0) = "black"
    vmas(4, 0) = "red"
    vmas(5, 0) = "blue"
    vmas(6, 0) = "blue"
    vmas(7, 0) = "black"
    vmas(8, 0) = "blue"
    vmas(9, 0) = "blue"
    vmas(10, 0) = "black"
    vmas(11, 0) = "black"
 
    vmas(0, 1) = 3
    vmas(1, 1) = 6
    vmas(2, 1) = 5
    vmas(3, 1) = 9
    vmas(4, 1) = 1
    vmas(5, 1) = 6
    vmas(6, 1) = 3
    vmas(7, 1) = 11
    vmas(8, 1) = 10
    vmas(9, 1) = 1
    vmas(10, 1) = 3
    vmas(11, 1) = 2
    
    DoCmd.SetWarnings False
    Call calcSums
    DoCmd.SetWarnings True
End Sub
 
Private Sub calcSums()
    DoCmd.SetWarnings False
    delTbl "Result"
    DoCmd.RunSQL "create table result (ResultName char UNIQUE, ResultSum integer)"
    For i = 0 To UBound(vmas)
        DoCmd.RunSQL "INSERT INTO result (ResultName, ResultSum) VALUES ('" & vmas(i, 0) & "', 0)"
        DoCmd.RunSQL "UPDATE result SET ResultSum = ResultSum + " & vmas(i, 1) & " WHERE ResultName = '" & vmas(i, 0) & "';"
    Next i
    DoCmd.SetWarnings True
    DoCmd.OpenTable "result", acViewNormal, acReadOnly
End Sub
 
Private Sub delTbl(tblName As String)
    If DCount("[Name]", "MSysObjects", "[Name] = '" & tblName & "'") = 1 Then
        If SysCmd(acSysCmdGetObjectState, acTable, tblName) = acObjStateOpen Then
            DoCmd.Close acTable, tblName
        End If
        DoCmd.RunSQL "DROP TABLE " & tblName
    End If
End Sub
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2014, 20:16
Помогаю со студенческими работами здесь

В прямоугольной матрице найти сумму элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу
в прямоугольной матрице найти сумму элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу.

Группировка и суммирование значений в таблицах
Здравствуйте. Подскажите, как можно просуммировать значения из нескольких строк, а потом вывести сумму в одной строке? Вот пример...

Группировка и суммирование значений строк DataGridView
У меня есть DataGridView на форме, в нем есть определенные строки, в которых например ид, название и цена. Как мне сгруппировать все...

Сравнение 2-х Книг по первому столбцу и вывод совпавших значений( всю строку) в 3-ю книгу
Всем Добрый день! Помогите пожалуйста с формулой или может здесь макрос нужен!? Имеется. 1 книга. Есть номера домов( некий перечень),...

Группировка по константе и суммирование значений в столбце для нее
Есть запрос и вывод на картинках. В общем нужно, чтобы выводило все в четыре строки (для каждого имени) общую сумму значений в столбце...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru