powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Хитрый цикл
10 сообщений из 10, страница 1 из 1
Хитрый цикл
    #33566187
AlexanderKR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста решить следующую проблему.
На рабочем листе у меня список предприятий,
имеющих на 01.01.2006 задолженность (zadol).
Она складывается из нескольких начислений (n1, n2 и т.д.)
По каждому начислению мне нужно посчитать сумму
остатков. Сделать это нужно так:
Если (zadol-n1)>0, то n1=(zadol-n1), а n2=n1-n2 пока >=0 (n3=n2-n3 и.т.д.)
Если (zadol-n1)<=0, то n1=(zadol-n1) и остановиться.
Спасибо.
...
Рейтинг: 0 / 0
Хитрый цикл
    #33566286
JimOrange
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А сколько всего может быть Nx?
...
Рейтинг: 0 / 0
Хитрый цикл
    #33566294
AlexanderKR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще-то 34 таких колонки.
Могу пример пореальнее выслать.
...
Рейтинг: 0 / 0
Хитрый цикл
    #33566298
JimOrange
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Если (zadol-n1)<=0, то n1=(zadol-n1) и остановиться" - а остальные N могут при этом быть заполнены? И что в таких случаях с ними делать?
Не очень пока понятна задача...
...
Рейтинг: 0 / 0
Хитрый цикл
    #33566302
AlexanderKR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если (zadol-n)<=0, то остальные n (в этой строке) уже не изменяются никак.
Должен произойти переход на другую строку.
...
Рейтинг: 0 / 0
Хитрый цикл
    #33566423
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты лучше приложи файл с тем что ты хочешь получить. Возможно, так как хочешь ты не получиться и надо будет создавать еще одну таблицу, например, на другом листе. Т.к. если данные введены в ячейки, формулу туда уже трудно вставить не изменив эти данные)))
...
Рейтинг: 0 / 0
Хитрый цикл
    #33566450
AlexanderKR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что хотелось бы получить
...
Рейтинг: 0 / 0
Хитрый цикл
    #33566452
AlexanderKR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что хотелось бы получить
...
Рейтинг: 0 / 0
Хитрый цикл
    #33566791
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел ввиду не алгоритм работы, который ты описал в файле, а таблицу с итоговыми результатами. Как она должна выглядеть? Нужны ли в ней столбцы nomx, dx, нужны ли в ней nx, которые больше нуля и т.п.? Нарисуй как она должна выглядеть, потому что, похоже, в этой же таблице менять ничего нельзя, только если хитрый макрос написать.
...
Рейтинг: 0 / 0
Хитрый цикл
    #33572043
Не хитрый цикл, а цикл с рукурсивной процедурой. Писал на основе того примера, который ты привел. Тестировал, расширив nx до n5. Остальное за тобой.

Код: plaintext
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.
Private f As Boolean

Sub X()
    Dim rng As Range
    
    Set rng = Worksheets("Лист1").Range("A1").CurrentRegion
    Set rng = rng.Offset( 1 ,  0 ).Resize _
      (rng.Rows.Count -  1 , rng.Columns.Count)
    
    For Each rng In rng.Columns( 3 ).Cells
        f = False
        Y rng,  0 ,  1 
    Next rng
End Sub

Sub Y( _
  ByVal rng As Range, _
  ByRef lngOffset1 As Long, _
  ByRef lngOffset2 As Long)
    Dim dbl As Double

    If IsEmpty(rng.Offset( 0 , lngOffset2)) Then Exit Sub

    dbl = rng.Offset( 0 , lngOffset1) - rng.Offset( 0 , lngOffset2)
    rng.Offset( 0 , lngOffset2) = dbl
    
    If dbl >=  0  Then
        lngOffset2 = lngOffset2 +  3 
        
        If Not f Then
            f = True
            lngOffset1 = lngOffset1 +  1 
        Else
            lngOffset1 = lngOffset1 +  3 
        End If
        
        Y rng, lngOffset1, lngOffset2
    End If
End Sub
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Хитрый цикл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]