Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с массивом! / 19 сообщений из 19, страница 1 из 1
15.05.2013, 15:43
    #38258607
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Здравствуйте коллеги подскажи пожалуйста как сделать такой велосипед: я задаю массив n-размерностью, затем мне нужно допустим считать в этот массив значения определенных ячеек одного столбца запомнить их и суммировать между собой.
Вот пример:
Код: php
1.
2.
3.
4.
5.
6.
7.
Янв    168,86
Фев    143,32
Март   3214,11  
Янв    53465,86
Март   756,98
Фев    312,22
Фев    644,34


И нужно подсчитать суммы для Янв, Фев и Март - отдельно коллеги, подсобите!
...
Рейтинг: 0 / 0
15.05.2013, 15:51
    #38258622
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Коллега, а о каком столбце идет речь? Где он, в БД, на листе Экселя, в таблице Ворда, в текстовом файле на диске?

Обязательно ли их помещать в массив? Думаю, что есть более простой способ посчитать сумму (в зависимости от того, откуда берутся данные)

Ну посчитали мы сумму, дальше что с ней сделать? Записать в файл, на лист, вывести на экран, в окно отладки, другие варианты?


Я написал сейчас текста больше, чем в твоем вопросе. Не жалей букв на то, чтобы сформулировать свой вопрос подробно, если, конечно, интересует результат, а не процесс
...
Рейтинг: 0 / 0
15.05.2013, 15:54
    #38258639
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
нужно подсчитать суммы для Янв, Фев и Март - Сводная таблица.
...
Рейтинг: 0 / 0
15.05.2013, 16:07
    #38258688
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Коллега,да извиняюсь эти значения находятся на "Листе1" ниже я прикрепил картиночку как это выглядит.
...
Рейтинг: 0 / 0
15.05.2013, 16:09
    #38258701
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
А подсчет выводить это я смогу, по сути на другой лист,мне нужно распилить имеенно запоминание этих значений и их суммирование коллеги!
...
Рейтинг: 0 / 0
15.05.2013, 17:53
    #38258918
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Евжекийраспилить ... запоминание ... и их суммированиенепонятно, на первый взгляд здесь действительно достаточно сводной таблицы
...
Рейтинг: 0 / 0
15.05.2013, 22:45
    #38259302
Volodbka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub pluseg()
Dim a$(100)
Dim b$(100)
Dim c$(100)
For i% = 1 To 100
a$(i%) = Cells(i%, 1)
b$(i%) = Cells(i%, 2)
c$(i%) = a$(i%) & "+" & b$(i%)
Cells(i%, 3) = c$(i%)
Next i%
End Sub
...
Рейтинг: 0 / 0
16.05.2013, 03:47
    #38259494
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Volodbka,
но можно и попроще:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub pluseg2()
    Dim m As Variant, i As Byte
    m = Range("A1:B100")
    For i = 1 To 100
        Cells(i, 3) = m(i, 1) & "+" & m(i, 2)
    Next
End Sub
...
Рейтинг: 0 / 0
16.05.2013, 10:10
    #38259679
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Не не не товарищи, это что тогда за ересь получается, по вашим примерам суммируется месяц со значением: Янв + 168,86 <-Вот что получается, а мне нужно чтобы подсчет велся таким образом:
Код: php
1.
2.
3.
Янв  168,86+53465,86      = ИТОГ
Фев  143,32+312,22+644,34 = ИТОГ
Март 3214,11+756,98       = ИТОГ
...
Рейтинг: 0 / 0
16.05.2013, 11:10
    #38259814
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Повторю еще раз свой вопрос - обязательно ли нужен КОД? Почему недостаточно сводной таблицы?
Если нужен КОД, то обязательно ли работать с МАССИВОМ? Это проще и быстрее делается с помощью SQL-запроса.
...
Рейтинг: 0 / 0
16.05.2013, 11:26
    #38259848
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Код нужен как "слепому зрение" очень нужен коллега, работать с массивами "Да" иначе никак, а при чем тут SQL я же не с БД работаю коллега!
...
Рейтинг: 0 / 0
16.05.2013, 11:30
    #38259863
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
ЕвжекийКод нужен как "слепому зрение" очень нужен коллега, работать с массивами "Да" иначе никак, а при чем тут SQL я же не с БД работаю коллега!
"коллега" - "тёмный, шо антрацит"
методами БД (в частности через SQL) можно "работать" и с текстовыми файлами, не то, что с Экселем ...
...
Рейтинг: 0 / 0
16.05.2013, 11:56
    #38259942
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Пробуйте.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub bb()
Dim Mon(), Dat(), i&
Mon = Range("A1", Cells(Rows.Count, "B").End(xlUp)).Value
With CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Mon)
        .Item(Mon(i, 1)) = .Item(Mon(i, 1)) + Mon(i, 2)
    Next
    Mon = .keys     'массив месяцев
    Dat = .items    'массив сумм
End With
End Sub
...
Рейтинг: 0 / 0
16.05.2013, 12:07
    #38259982
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Евжекийа при чем тут SQL я же не с БД работаю коллега!Коллега, раз задаешь вопрос на форуме, прислушивайся к ответам, а не спорь, иначе зачем ты это делаешь?

вот пример с SQL и с массивом
Код: vbnet
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.
Private Type Ans
  Month As String
  Sum As Currency
End Type
Dim Ar() As Ans

Sub t()

Dim cn As Object, rs As Object, i As Integer
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ThisWorkbook.FullName + ";Extended Properties='Excel 8.0'"
rs.Open "select Month, Sum(Value) AS Sm from [&#203;&#232;&#241;&#242;1$] group by Month order by Month", cn, 3

перегружаем в массив, раз так хочется
i = 0
Do Until rs.EOF
  ReDim Preserve Ar(i)
  Ar(i).Month = rs("Month")
  Ar(i).Sum = rs("Sm")
  Debug.Print Ar(i).Month, Ar(i).Sum
  i = i + 1
  rs.MoveNext
Loop

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

End Sub

Столбцы, соответственно, должны быть озаглавлены Month и Value
...
Рейтинг: 0 / 0
16.05.2013, 12:46
    #38260080
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Коллеги, у меня создаётся впечатление, что ТС не знает даже о существовании формул листа в Excel (как и о том, что эти формулы можно прописать в коде), и все расчеты производит через VBA.
Поскольку ему нужно элементарное =СУММ(<диапазон>) ...
...
Рейтинг: 0 / 0
16.05.2013, 12:52
    #38260094
mdkChaos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Если точнее то, =СУММЕСЛИ(диапазон;критерий;[диапазон_суммирования])
...
Рейтинг: 0 / 0
16.05.2013, 14:19
    #38260297
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Коллеги благодарю за активную дискуссию, а про формулы эти СУММ,СУММЕСЛИ и подобную шляпу я знаю, но это не то что мне нужно я пробираюсь в дебри другим более тернистым путем, так что AndreTM - уважаемый коллега тут вы ошибаетесь, ну а так вы все красавчики, буду бица дальше, за мои прискорбные диалоги извиняюсь коллеги!
...
Рейтинг: 0 / 0
16.05.2013, 14:22
    #38260306
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
Коллега Shocker.Pro благодарю за прислушивание к вам, учту а ваш "ух какой метод" я конечно попробую, но не гарантирую что он мне понравится.
...
Рейтинг: 0 / 0
16.05.2013, 14:38
    #38260360
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом!
ЕвжекийКоллега Shocker.Pro благодарю за прислушивание к вам, учту а ваш "ух какой метод" я конечно попробую, но не гарантирую что он мне понравится.Он понравится, если будет очень большое количество данных, ибо это очень быстрый способ
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с массивом! / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]