Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вывести последний элемент массива в другой столбец - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывести последний элемент массива в другой столбец (Макросы/Sub)
Вывести последний элемент массива в другой столбец
exelskatyazhelyi Дата: Пятница, 24.02.2017, 22:08 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Есть массив, огромный(несколько книг, в книгах около 100 листов на каждой) столбец а-названия, повторяются разное количество раз. Столбец б-стоимость, разная. нужно сделать одну таблицу(на одном листе), где А-название(повторяется 3 раза) Б-средняя цена, первая цена, последняя цена. Условие выводить только если конечная цена больше первой и средней.
Описал для общего понимая.
Задача, которую не могу решить-найти среднюю стоимость(повторю разное количество позиций, много книг...). Буду благодарен за помощь.
К сообщению приложен файл: _Microsoft_Exce.xlsx (9.1 Kb)


Сообщение отредактировал exelskatyazhelyi - Суббота, 25.02.2017, 16:41
 
Ответить
СообщениеЕсть массив, огромный(несколько книг, в книгах около 100 листов на каждой) столбец а-названия, повторяются разное количество раз. Столбец б-стоимость, разная. нужно сделать одну таблицу(на одном листе), где А-название(повторяется 3 раза) Б-средняя цена, первая цена, последняя цена. Условие выводить только если конечная цена больше первой и средней.
Описал для общего понимая.
Задача, которую не могу решить-найти среднюю стоимость(повторю разное количество позиций, много книг...). Буду благодарен за помощь.

Автор - exelskatyazhelyi
Дата добавления - 24.02.2017 в 22:08
exelskatyazhelyi Дата: Суббота, 25.02.2017, 16:44 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub tt()

znach = Cells(1, 1)
Dim n As Integer
n = Application.WorksheetFunction.CountA(Columns("A")) ' считаем количество ячеек
Dim i, s As Integer
Dim summ As Integer
For i = 1 To n
If Cells(i, 1) = znach Then
summ = WorksheetFunction.Average(Range(Cells(1, 2), Cells(i, 2)))

Range(Cells(1, 3), Cells(i, 3)).Value = summ

End If
Next i

End Sub
[/vba]

вот что получилось, осталась только одна проблема выводит все полученные средние значения в соседний столбец. как сделать чтобы выводилось только последнее значение? надо изменить вот эту строку

Range(Cells(1, 3), Cells(i, 3)).Value = summ
 
Ответить
Сообщение[vba]
Код
Sub tt()

znach = Cells(1, 1)
Dim n As Integer
n = Application.WorksheetFunction.CountA(Columns("A")) ' считаем количество ячеек
Dim i, s As Integer
Dim summ As Integer
For i = 1 To n
If Cells(i, 1) = znach Then
summ = WorksheetFunction.Average(Range(Cells(1, 2), Cells(i, 2)))

Range(Cells(1, 3), Cells(i, 3)).Value = summ

End If
Next i

End Sub
[/vba]

вот что получилось, осталась только одна проблема выводит все полученные средние значения в соседний столбец. как сделать чтобы выводилось только последнее значение? надо изменить вот эту строку

Range(Cells(1, 3), Cells(i, 3)).Value = summ

Автор - exelskatyazhelyi
Дата добавления - 25.02.2017 в 16:44
KuklP Дата: Суббота, 25.02.2017, 16:58 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
[vba]
Код
Cells(n, 3).Value = summ
[/vba] И вынести это ЗА цикл. А вообще примеры надо выкладывать в файлах Эксель.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Суббота, 25.02.2017, 17:00
 
Ответить
Сообщение[vba]
Код
Cells(n, 3).Value = summ
[/vba] И вынести это ЗА цикл. А вообще примеры надо выкладывать в файлах Эксель.

Автор - KuklP
Дата добавления - 25.02.2017 в 16:58
exelskatyazhelyi Дата: Суббота, 25.02.2017, 18:11 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
И вынести это ЗА цикл. А вообще примеры надо выкладывать в файлах Эксель.


спасибо, но это не совсем то что мне требуется, приложил файл и пометил внутри куда должно выводиться среднее значение.
К сообщению приложен файл: 1600984.xlsx (9.3 Kb)
 
Ответить
Сообщение
И вынести это ЗА цикл. А вообще примеры надо выкладывать в файлах Эксель.


спасибо, но это не совсем то что мне требуется, приложил файл и пометил внутри куда должно выводиться среднее значение.

Автор - exelskatyazhelyi
Дата добавления - 25.02.2017 в 18:11
exelskatyazhelyi Дата: Суббота, 25.02.2017, 18:13 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP, ну т.е. в первом столбце ищем одинаковый товар, во втором его цена. выводим среднее значение на последнем повторяющемся элементе.
 
Ответить
СообщениеKuklP, ну т.е. в первом столбце ищем одинаковый товар, во втором его цена. выводим среднее значение на последнем повторяющемся элементе.

Автор - exelskatyazhelyi
Дата добавления - 25.02.2017 в 18:13
KuklP Дата: Суббота, 25.02.2017, 18:27 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
[vba]
Код
Sub tt()
    Dim j&, znach$, i&, summ&
    znach = Cells(1, 1): j = 1
    For i = 1 To Application.WorksheetFunction.CountA(Columns("A")) + 1
        If Cells(i, 1) <> znach Then
            summ = WorksheetFunction.Average(Range(Cells(j, 2), Cells(i - 1, 2)))
            Cells(i - 1, 3).Value = summ: znach = Cells(i, 1): summ = 0: j = i
        End If
    Next i
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Суббота, 25.02.2017, 18:29
 
Ответить
Сообщение[vba]
Код
Sub tt()
    Dim j&, znach$, i&, summ&
    znach = Cells(1, 1): j = 1
    For i = 1 To Application.WorksheetFunction.CountA(Columns("A")) + 1
        If Cells(i, 1) <> znach Then
            summ = WorksheetFunction.Average(Range(Cells(j, 2), Cells(i - 1, 2)))
            Cells(i - 1, 3).Value = summ: znach = Cells(i, 1): summ = 0: j = i
        End If
    Next i
End Sub
[/vba]

Автор - KuklP
Дата добавления - 25.02.2017 в 18:27
exelskatyazhelyi Дата: Понедельник, 27.02.2017, 14:07 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP, спасибо, работает как часики!
 
Ответить
СообщениеKuklP, спасибо, работает как часики!

Автор - exelskatyazhelyi
Дата добавления - 27.02.2017 в 14:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывести последний элемент массива в другой столбец (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!