Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2012, 18:21   #1
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
Злость Создание, обработка и выгрузка МАССИВА

Доброго времени суток, Ув. Форумчане
Очень большая просьба, дайте пожалуйста ссылочки на документацию про массивы как их строить, обрабатывать и выгружать (если есть возможность на примерах...)
Уже несколько книг пролистал примеров просмотрел... Но не вкуря я как это все чудо делать и все... хоть ты тресни (((
Заранее СПАСИБО!!!
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 29.10.2012, 21:20   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

staniiislav, вы же местный!

очень не конкретный вопрос. если начинать с самого начала, то ответ получиться очень длинным: "С начала на Земле жили мамонты, но они ничего не знали о двоичных вычислениях... собственно, поэтому и вымерли... и т.д. и т.п...."
Вам это надо?
задайте вопрос конкретнее и получите... конкретно
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.10.2012, 21:46   #3
ikki_pf
Форумчанин
 
Регистрация: 25.02.2012
Сообщений: 166
По умолчанию

имхо, у Пирсона неплохо описано: http://www.cpearson.com/Excel/ArraysAndRanges.aspx
(там еще много топиков про работу с массивами на http://www.cpearson.com/Excel/Topic.aspx )
ikki_pf вне форума Ответить с цитированием
Старый 30.10.2012, 09:51   #4
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
staniiislav, вы же местный!

очень не конкретный вопрос. если начинать с самого начала, то ответ получиться очень длинным: "С начала на Земле жили мамонты, но они ничего не знали о двоичных вычислениях... собственно, поэтому и вымерли... и т.д. и т.п...."
Вам это надо?
задайте вопрос конкретнее и получите... конкретно
меня просто бесит, то что я не могу понять элементарные вещи...
Вопрос:
Есть три листа
- лист1 (фирма1) значения А2:В10 (в А названия товаров, в В цена)
- лист2 (фирма2) значения А2:В10 (в А названия товаров, в В цена)
- лист3 (сводная) значения А2:В10 (в А названия фирмы, в В цена (или сумма, или среднее, или мин цена, или макс цена) по товару)
Как в массив загрузить данные с листа1, затем дополнить массив данными с листа2, сделать нужные расчеты и вывести данные с массива в лист3?
Пример из темы :
http://programmersforum.ru/showthrea...=1#post1121340
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 30.10.2012, 09:53   #5
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от ikki_pf Посмотреть сообщение
имхо, у Пирсона неплохо описано: http://www.cpearson.com/Excel/ArraysAndRanges.aspx
(там еще много топиков про работу с массивами на http://www.cpearson.com/Excel/Topic.aspx )
спасибо, буду читать
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 30.10.2012, 10:37   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Тот пример (файл) не могу скачать, но думаю там алгоритм может быть такой:
1. не нужен общий массив - вместо него будет словарь
2. перебираем последовательно данные файлов/листов, через массив или как угодно
3. заносим в словарь уникальные товары, в item словаря помещаем данные по минимуму/максимуму и их адрес (можно в одной строке, можно в массиве/коллекции/другом словаре).
4. в итоге данные словаря выгружаем на лист или перекладываем в массив.
На лист вот примерчик:
Sheets("Итог").[a1].Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
Это если в item строки/значения, а не массивы/коллекции/словари

Ну а в общем случае (если уж так очень непременно нужен один общий массив, без чего думаю почти всегда можно обойтись - кажется всего один раз такое делал) можно сделать так - открыть все файлы (сразу или последовательно), глянуть сколько в каждом данных, объявить массив нужного размера, затем в цикле последовательно его заполнить данными файлов.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 30.10.2012, 11:15   #7
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Тот пример (файл) не могу скачать, но думаю там алгоритм может быть такой:
1. не нужен общий массив - вместо него будет словарь
2. перебираем последовательно данные файлов/листов, через массив или как угодно
3. заносим в словарь уникальные товары, в item словаря помещаем данные по минимуму/максимуму и их адрес (можно в одной строке, можно в массиве/коллекции/другом словаре).
4. в итоге данные словаря выгружаем на лист или перекладываем в массив.
На лист вот примерчик:
Sheets("Итог").[a1].Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
Это если в item строки/значения, а не массивы/коллекции/словари

Ну а в общем случае (если уж так очень непременно нужен один общий массив, без чего думаю почти всегда можно обойтись - кажется всего один раз такое делал) можно сделать так - открыть все файлы (сразу или последовательно), глянуть сколько в каждом данных, объявить массив нужного размера, затем в цикле последовательно его заполнить данными файлов.
спасибо... попробую подумать в сторону словарей... мне просто для себя понять как это работает...
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 30.10.2012, 12:11   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Смысл такой - словарь по сути безразмерный массив в один столбец, где хранятся только уникальные значения.
И к каждому значению есть примечание, которое может быть кучей примечаний (массивом), или объектом (коллекцией, словарём)
Наличие значения в словаре определяется одним действием - словарь.exists(значение).
Т.е. с помощью словаря мы знаем, что такое значение уже было или нет, и какие его свойства (что запомнили в item).
Как аналогия - человеческое восприятие: просматриваешь например список учеников и сразу знаешь - вот такой уже раньше был, с двойкой, но т.к. сейчас пятёрка - можно его занести в отличники
Без всяких дополнительных циклов в цикле - память хорошая

Я часто применяю словарь в связке с массивом - в словаре запоминаю уникальное значение и присвоенную ему строку в массиве, а в массиве храню все остальные данные по этому слову (и его возможно тоже).
Если встретили в первый раз (not словарь.exists(значение)) - увеличиваем индекс массива, заносим значение в словарь с индексом, в массив по этому индексу данные значения.
Далее встретили значение снова - взяли из словаря позицию, по позиции в массиве меняем/анализируем данные.
Код простой, работает быстро, много вариантов использования.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 30.10.2012, 14:34   #9
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Смысл такой - словарь по сути безразмерный массив в один столбец, где хранятся только уникальные значения.
И к каждому значению есть примечание, которое может быть кучей примечаний (массивом), или объектом (коллекцией, словарём)
Наличие значения в словаре определяется одним действием - словарь.exists(значение).
Т.е. с помощью словаря мы знаем, что такое значение уже было или нет, и какие его свойства (что запомнили в item).
Как аналогия - человеческое восприятие: просматриваешь например список учеников и сразу знаешь - вот такой уже раньше был, с двойкой, но т.к. сейчас пятёрка - можно его занести в отличники
Без всяких дополнительных циклов в цикле - память хорошая

Я часто применяю словарь в связке с массивом - в словаре запоминаю уникальное значение и присвоенную ему строку в массиве, а в массиве храню все остальные данные по этому слову (и его возможно тоже).
Если встретили в первый раз (not словарь.exists(значение)) - увеличиваем индекс массива, заносим значение в словарь с индексом, в массив по этому индексу данные значения.
Далее встретили значение снова - взяли из словаря позицию, по позиции в массиве меняем/анализируем данные.
Код простой, работает быстро, много вариантов использования.
спасибо за пояснение! Вы можете выложить пару простых примеров?
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 30.10.2012, 14:49   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Нет, файлы выложить сейчас не могу, да и примеры готовить некогда.
Но на форуме таких примеров навалом - поищите по scripting.dictionary
Вот например:
http://www.programmersforum.ru/showthread.php?t=210517
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и выгрузка данных из массива staniiislav Microsoft Office Excel 3 06.04.2012 08:42
инициализация массива, вывод массива и обработка массива должны быть реализованы с помоshью функций airesjke Помощь студентам 0 02.03.2012 16:14
обработка массива letnjaja Помощь студентам 0 23.10.2011 00:00
Обработка Массива Марина01 Помощь студентам 6 26.04.2011 16:38
[Delphi] создание и обработка двумерного массива screep Помощь студентам 5 16.06.2008 19:27