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

Вход

Регистрация

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

 

= Мир MS Excel/Суммирование остатков по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Суммирование остатков по условию (Формулы/Formulas)
Суммирование остатков по условию
Stormy Дата: Среда, 11.05.2016, 16:58 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Подскажите, пожалуйста, как просуммировать последние остатки каждого цеха?
К сообщению приложен файл: 8770572.xlsx (9.2 Kb)


Место для рекламы.
 
Ответить
СообщениеДобрый день!
Подскажите, пожалуйста, как просуммировать последние остатки каждого цеха?

Автор - Stormy
Дата добавления - 11.05.2016 в 16:58
ArkaIIIa Дата: Среда, 11.05.2016, 17:13 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Добрый день.

Вариант с 2 доп. столбцами.
К сообщению приложен файл: 8770572_1.xlsx (10.1 Kb)


Сообщение отредактировал ArkaIIIa - Среда, 11.05.2016, 17:17
 
Ответить
СообщениеДобрый день.

Вариант с 2 доп. столбцами.

Автор - ArkaIIIa
Дата добавления - 11.05.2016 в 17:13
Stormy Дата: Среда, 11.05.2016, 17:17 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
ArkaIIIa,
Благодарю за ответ!
К сожалению, решение с доп. столбцами не подходит.


Место для рекламы.
 
Ответить
СообщениеArkaIIIa,
Благодарю за ответ!
К сожалению, решение с доп. столбцами не подходит.

Автор - Stormy
Дата добавления - 11.05.2016 в 17:17
ArkaIIIa Дата: Среда, 11.05.2016, 17:47 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Stormy
Ждем тогда Отцов. В один доп. столбец легко сделать в общем то. А вот без них как - не могу пока решить.
 
Ответить
СообщениеStormy
Ждем тогда Отцов. В один доп. столбец легко сделать в общем то. А вот без них как - не могу пока решить.

Автор - ArkaIIIa
Дата добавления - 11.05.2016 в 17:47
Manyasha Дата: Среда, 11.05.2016, 18:03 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Stormy, а так пойдет?
Код
=(СЧЁТЕСЛИ(C13:$C$13;C13)=1)*D13+E12
К сообщению приложен файл: 8770572-2.xlsx (9.8 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеStormy, а так пойдет?
Код
=(СЧЁТЕСЛИ(C13:$C$13;C13)=1)*D13+E12

Автор - Manyasha
Дата добавления - 11.05.2016 в 18:03
abtextime Дата: Среда, 11.05.2016, 18:26 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
UDF

[vba]
Код
[s]Public Function GreenSum(R As Range) As Double

GreenSum = 0

For i = 1 To R.Rows.Count - 1

     If (R.Cells(i, 1).Value <> R.Cells(i + 1, 1).Value) Or (R.Cells(i, 2).Value <> R.Cells(i + 1, 2).Value) Then
        GreenSum = GreenSum + R.Cells(i, 3)
     End If

Next i

GreenSum = GreenSum + R.Cells(R.Rows.Count, 3)

End Function[/s]
[/vba]

upd. Не соответствует условиям
К сообщению приложен файл: _8770572.xlsm (16.8 Kb)


Сообщение отредактировал abtextime - Среда, 11.05.2016, 19:05
 
Ответить
СообщениеUDF

[vba]
Код
[s]Public Function GreenSum(R As Range) As Double

GreenSum = 0

For i = 1 To R.Rows.Count - 1

     If (R.Cells(i, 1).Value <> R.Cells(i + 1, 1).Value) Or (R.Cells(i, 2).Value <> R.Cells(i + 1, 2).Value) Then
        GreenSum = GreenSum + R.Cells(i, 3)
     End If

Next i

GreenSum = GreenSum + R.Cells(R.Rows.Count, 3)

End Function[/s]
[/vba]

upd. Не соответствует условиям

Автор - abtextime
Дата добавления - 11.05.2016 в 18:26
Nic70y Дата: Среда, 11.05.2016, 19:03 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 8753
Репутация: 2270 ±
Замечаний: 0% ±

Excel 2010
формула массива
Код
=СУММ(ЕСЛИ(ПОИСКПОЗ(НАИМЕНЬШИЙ(СЧЁТЕСЛИ(C4:C13;"<"&C4:C13)+0,1;СТРОКА(C4:C13)-3);НАИМЕНЬШИЙ(СЧЁТЕСЛИ(C4:C13;"<"&C4:C13)+СТРОКА(C4:C13)/10000;СТРОКА(C4:C13)-3);1)=СТРОКА(C4:C13)-3;D4:D13))

хотя нет, где-то ошибка
К сообщению приложен файл: 8770572-18-5.xlsx (9.8 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 11.05.2016, 19:13
 
Ответить
Сообщениеформула массива
Код
=СУММ(ЕСЛИ(ПОИСКПОЗ(НАИМЕНЬШИЙ(СЧЁТЕСЛИ(C4:C13;"<"&C4:C13)+0,1;СТРОКА(C4:C13)-3);НАИМЕНЬШИЙ(СЧЁТЕСЛИ(C4:C13;"<"&C4:C13)+СТРОКА(C4:C13)/10000;СТРОКА(C4:C13)-3);1)=СТРОКА(C4:C13)-3;D4:D13))

хотя нет, где-то ошибка

Автор - Nic70y
Дата добавления - 11.05.2016 в 19:03
abtextime Дата: Среда, 11.05.2016, 19:16 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Public Function GreenSum(R As Range) As Double

GreenSum = 0

For i = 1 To R.Rows.Count - 1
    
    IsLast = True
    
    For j = i + 1 To R.Rows.Count

       If (R.Cells(i, 1) = R.Cells(j, 1)) And (R.Cells(i, 2) = R.Cells(j, 2)) Then IsLast = False
     
    Next j
    
    If IsLast Then GreenSum = GreenSum + R.Cells(i, 3)

Next i

GreenSum = GreenSum + R.Cells(R.Rows.Count, 3)

End Function
[/vba]

Так корректнее
К сообщению приложен файл: -8770572.xlsm (17.0 Kb)
 
Ответить
Сообщение[vba]
Код
Public Function GreenSum(R As Range) As Double

GreenSum = 0

For i = 1 To R.Rows.Count - 1
    
    IsLast = True
    
    For j = i + 1 To R.Rows.Count

       If (R.Cells(i, 1) = R.Cells(j, 1)) And (R.Cells(i, 2) = R.Cells(j, 2)) Then IsLast = False
     
    Next j
    
    If IsLast Then GreenSum = GreenSum + R.Cells(i, 3)

Next i

GreenSum = GreenSum + R.Cells(R.Rows.Count, 3)

End Function
[/vba]

Так корректнее

Автор - abtextime
Дата добавления - 11.05.2016 в 19:16
Nic70y Дата: Четверг, 12.05.2016, 08:23 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 8753
Репутация: 2270 ±
Замечаний: 0% ±

Excel 2010
теперь, вроде бы правильно, наверное:
Код
=СУММ(ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(СТРОКА(C4:C13);ОКРУГЛ(ОСТАТ(ЕСЛИ(ПОИСКПОЗ(НАИМЕНЬШИЙ(ПОИСКПОЗ(C4:C13;C4:C13;)+0,1;СТРОКА(C1:C10));НАИМЕНЬШИЙ(ПОИСКПОЗ(C4:C13;C4:C13;)+СТРОКА(C4:C13)/1000;СТРОКА(C1:C10)))=СТРОКА(C1:C10);НАИМЕНЬШИЙ(ПОИСКПОЗ(C4:C13;C4:C13;)+СТРОКА(C4:C13)/1000;СТРОКА(C1:C10)));1);3)*1000;));D4:D13))
К сообщению приложен файл: 8770572-18-6.xlsx (9.8 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениетеперь, вроде бы правильно, наверное:
Код
=СУММ(ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(СТРОКА(C4:C13);ОКРУГЛ(ОСТАТ(ЕСЛИ(ПОИСКПОЗ(НАИМЕНЬШИЙ(ПОИСКПОЗ(C4:C13;C4:C13;)+0,1;СТРОКА(C1:C10));НАИМЕНЬШИЙ(ПОИСКПОЗ(C4:C13;C4:C13;)+СТРОКА(C4:C13)/1000;СТРОКА(C1:C10)))=СТРОКА(C1:C10);НАИМЕНЬШИЙ(ПОИСКПОЗ(C4:C13;C4:C13;)+СТРОКА(C4:C13)/1000;СТРОКА(C1:C10)));1);3)*1000;));D4:D13))

Автор - Nic70y
Дата добавления - 12.05.2016 в 08:23
Stormy Дата: Четверг, 12.05.2016, 09:50 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
ArkaIIIa,
Порывшись в инете, усомнился, что мою задачу можно решить без макросов и/или доп. столбца.
Nic70y, Manyasha,
Благодарю за участие
abtextime,
Благодарю. Своя функция в данном случае самое простое решение


Место для рекламы.
 
Ответить
СообщениеArkaIIIa,
Порывшись в инете, усомнился, что мою задачу можно решить без макросов и/или доп. столбца.
Nic70y, Manyasha,
Благодарю за участие
abtextime,
Благодарю. Своя функция в данном случае самое простое решение

Автор - Stormy
Дата добавления - 12.05.2016 в 09:50
Stormy Дата: Пятница, 13.05.2016, 07:52 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Nic70y,
:hands:
Нужно будет проверить как себя поведет формула при объеме в 50к строк


Место для рекламы.

Сообщение отредактировал Stormy - Пятница, 13.05.2016, 07:52
 
Ответить
СообщениеNic70y,
:hands:
Нужно будет проверить как себя поведет формула при объеме в 50к строк

Автор - Stormy
Дата добавления - 13.05.2016 в 07:52
Nic70y Дата: Пятница, 13.05.2016, 21:11 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 8753
Репутация: 2270 ±
Замечаний: 0% ±

Excel 2010
50к строк
ну тут стоит задуматься...
уже 4 мин считает - пока не сосчитала, но (не буду утверждать)
помоему не лучше...

проверил то и другое - полное зависание...
зря не хотите доп. столбцов
(или наверное массивы в вба)

вариант в файле считает "моментально" (с доп столбцом)
Код
=ЕСЛИ(ЕНД(ПОИСКПОЗ(C4;C5:C$61000;));D4;"")
К сообщению приложен файл: 18.xlsx (9.9 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Суббота, 14.05.2016, 07:54
 
Ответить
Сообщение
50к строк
ну тут стоит задуматься...
уже 4 мин считает - пока не сосчитала, но (не буду утверждать)
помоему не лучше...

проверил то и другое - полное зависание...
зря не хотите доп. столбцов
(или наверное массивы в вба)

вариант в файле считает "моментально" (с доп столбцом)
Код
=ЕСЛИ(ЕНД(ПОИСКПОЗ(C4;C5:C$61000;));D4;"")

Автор - Nic70y
Дата добавления - 13.05.2016 в 21:11
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Суммирование остатков по условию (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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