Доброго времени!
Прошу помощи в написании пользовательской функции SumTypeProduct, суммирующей стоимость по видам товаров.
Условие:
1. Дана таблица с фиксированным количеством строк и столбцов.
2. Видов товаров может быть от 0 до 10. То есть таблица может быть пустой.
3. SumTypeProduct должна иметь вид "Код_Товара" & " - " & Сумма_По_Товару" (1 - 150).
4. SumTypeProduct следует разместить в трех строках итогового столбца, при необходимости используя разделитель и пробел "; ". Например, если количество "Кодов_Товара" равно пяти, то SumTypeProduct принимает вид:
1 строка: 1 - 150; 2 - 40
2 строка: 3 - 80; 4 - 50
3 строка: 5 - 70
Я использовал функцию СУМЕСЛИМН и сумел получить итоговую строку, но дальше ума не приложу, как разместить ее в трех строках итогового столбца.
Пример во вложении, а вот сама функция:
Прошу помощи в написании пользовательской функции SumTypeProduct, суммирующей стоимость по видам товаров.
Условие:
1. Дана таблица с фиксированным количеством строк и столбцов.
2. Видов товаров может быть от 0 до 10. То есть таблица может быть пустой.
3. SumTypeProduct должна иметь вид "Код_Товара" & " - " & Сумма_По_Товару" (1 - 150).
4. SumTypeProduct следует разместить в трех строках итогового столбца, при необходимости используя разделитель и пробел "; ". Например, если количество "Кодов_Товара" равно пяти, то SumTypeProduct принимает вид:
1 строка: 1 - 150; 2 - 40
2 строка: 3 - 80; 4 - 50
3 строка: 5 - 70
Я использовал функцию СУМЕСЛИМН и сумел получить итоговую строку, но дальше ума не приложу, как разместить ее в трех строках итогового столбца.
Пример во вложении, а вот сама функция:
| Код |
|---|
Public Function SumTypeProduct(myRng As Range) Dim i As Integer Dim mySum As Integer, myStr As String For i = 1 To 10 mySum = WorksheetFunction.SumIfs(myRng.Offset(0, 2), myRng, i) + _ WorksheetFunction.SumIfs(myRng.Offset(0, 5), myRng.Offset(0, 3), i) + _ WorksheetFunction.SumIfs(myRng.Offset(0, 8, myRng.Offset(0, 6), i) If mySum > 0 Then: myStr = myStr & i & " - " & mySum & "; " Next MsgBox myStr End Function |
Изменено: - 28.05.2016 13:54:25