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

Найти название товара, который по цене наиболее близкий к средней цене

03.05.2013, 12:57. Показов 1606. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задан массив из 2 столбцов Excel "Цены" и "Товары"
Нужно найти название одного товара, который по цене наиболее близкий к средней цене.

ТоварыЦены
булка2,5
хлеб5,3

и т.д.
Вот что у меня вышло, но отражает только название первого товара.

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
Public Function minim _ 
(Товары As Range,Цены As Range) As String 
Dim arrЦены As Variant 
Dim N As Integer 
Dim i As Integer 
N = Цены.Rows.Count 
arrТовары = Товары.Value 
arrЦены = Цены.Value 
 
S = 0 
For i = 1 To (N - 1) 
S = S + arrЦены(i, 1) 
Next i 
V = S / N 
minimal = arrЦены(1, 1) - V 
For r = 1 To N 
If arrЦены(r, 1) - V < minimal Then minimal = arrЦены(r, 1) - V 
Next r 
i = 0 
Do 
i = i + 1 
Loop Until (minimal) 
 
x = CVar(arrТовары(i, 1)) 
minim = x 
End Function
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2013, 12:57
Ответы с готовыми решениями:

Как выделить цветом информацию о товаре, цена которого наиболее близка к средней цене товара
Прайс-лист на форме имеет названия и цены N товаров (N =10) Выделить цветом информацию о товаре, цена которого наиболее близка к средней...

Эластичность Ep(q)=(p/q)*q' спроса q по цене p определяется функцией вида Ep(q)= 10 - p. При цене p = 6 спрос q равен 5 Чему равен спрос при цене p =9
пожалуйста помогите: Эластичность Ep(q)=(p/q)*q' спроса q по цене p определяется функцией вида Ep(q)= 10 - p. При цене p = 6 спрос q...

Поиск по цене товара и количеству товара
1.Составьте программу, которая обеспечивает ввод данных, вывод данных, поиск по цене товара и количеству товара К. Каждая запись содержит...

3
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
03.05.2013, 13:46
Код
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
Public Function minim _
    (Товары As Range, Цены As Range) As String
    
    Dim arrЦены As Variant, arrТовары As Variant
    Dim myCount As Integer
    Dim i As Integer
    '"Double" означает, что в переменной могут быть только числа
        '(ещё бывает, например, текст).
        'Причём числа могут быть как целые, так и дробные.
    Dim mySum As Double
    Dim myAverage As Double
    Dim myDifference As Double
    Dim myMinItem As Integer
    
    
    myCount = Цены.Rows.Count
    arrТовары = Товары.Value
    arrЦены = Цены.Value
    
    
    'Можно не писать "mySum = 0", т.к. VBA
        'сам помещает в переменные нули при запуске процедры,
        'если переменная не глобальная.
    mySum = 0
    For i = 1 To myCount Step 1
        mySum = mySum + arrЦены(i, 1)
    Next i
    
    'Находим среднюю цену.
    myAverage = mySum / myCount
    
    'Принимаем за нужную цену первую цену.
    'Т.к. ближайшая цена может быть меньше и больше средней, то
        'нужно не учитывать знак.
    'С помощью VBA-функции "Abs" убираем из числа знак.
    myDifference = Abs(arrЦены(1, 1) - myAverage)
    
    'В переменную "myMinItem" запоминаем порядковый
        'номер строки в массиве "arrЦены".
    myMinItem = 1
    
    For i = 2 To myCount Step 1
        If Abs(arrЦены(i, 1) - myAverage) < myDifference Then
            myDifference = Abs(arrЦены(i, 1) - myAverage)
            'Запоминаем порядковый номер строки в массиве "arrЦены".
            myMinItem = i
        End If
    Next i
    
    minim = arrТовары(myMinItem, 1)
    
End Function
1
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 4
03.05.2013, 13:55  [ТС]
СПАСИБО ОГРОМНОЕ!!!!!!!!!!!!!
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
03.05.2013, 14:47
До кучи
Visual Basic
1
2
3
Public Function minim1(Товары As Range, Цены As Range)
minim1 = Evaluate(Replace("INDEX(" & Товары.Address & ",MATCH(MIN(ABS(AVERAGE(~)-~)),ABS(AVERAGE(~)-~),))", "~", Цены.Address))
End Function
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2013, 14:47
Помогаю со студенческими работами здесь

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

Отсортировать записи по цене товара
Программа создает массив записей с данными о продукции на складе фирмы код товара, название товара, фирма-производитель , дата...

Получить информацию о магазинах где указанна книга продаётся по цене меньше средней
помогите написать программу на С Написать программу, которая обеспечивает следующее  - получить информацию о магазинах где...

Вывести в новый файл магазины, продающие сметану с жирностью 20 процентов по цене ниже средней
Мне было дано следующее задание: В молочных магазинах города Х продается сметана с жирностью 15, 20 и 25 процентов. В городе X был...

Pascal abc. Найти порядковый номер элемента массива A размерности N, который наиболее близкий к их разности
Даны два вещественных числа P и R. Найти порядковый номер элемента массива A размерности N, который наиболее близкий к их разности. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru