Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.05.2008, 09:33   #1
jungo
Форумчанин Подтвердите свой е-майл
 
Аватар для jungo
 
Регистрация: 14.11.2007
Сообщений: 163
По умолчанию задать букву (по англ. алфавиту) в столбце 'Station' по критериям.

Прощу помощи 2
Упрощение прошлой задачки

(http://www.programmersforum.ru/showthread.php?t=19517)
В примере, напротив 'Name' у которых есть значение 'time work' нужно задать букву (по англ. алфавиту) в столбце 'Station' по критериям:
Снизу вверх в каждой букве, в сумме максимум 40 'time work'.

Не проходите мимо!

* Sorry... Спасибо за поправку Названия ТЕМЫ.
Вложения
Тип файла: rar Station_simple.rar (5.6 Кб, 21 просмотров)
Jungo must die!!! (C) Bill Gates.

Последний раз редактировалось jungo; 21.05.2008 в 09:57.
jungo вне форума
Старый 21.05.2008, 11:05   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Не знаю, на сколько правильно я Вас понял.
Помня о том, что по каким-то причинам, у Вас не всегда нормально читаются вложения, представляю код макроса. Вставьте его в файл и запустите.
Код:
Sub Simv()

    Dim NSimv As Integer, i As Long, Sum As Long
    
    Columns("C").ClearContents
    NSimv = 65: Sum = 0
    
    For i = Cells(Rows.Count, "B").End(xlUp).Row To 2 Step -1
        If Cells(i, "B") <> "" Then
            Sum = Sum + Cells(i, "B")
            If Sum > 40 Then
                NSimv = NSimv + 1
                Cells(i, "C") = Chr(NSimv)
                Sum = Cells(i, "B")
            Else
                Cells(i, "C") = Chr(NSimv)
            End If
        End If
    Next

End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 21.05.2008, 11:29   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

цитата "я человек военный, поэтому мне необходимо все говорить медленно и повторять ДВА раза!"

я не военный, но понял что требуется в задаче только сейчас)))... потому что это повтор задачи и читал я все медленно.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 21.05.2008, 11:52   #4
jungo
Форумчанин Подтвердите свой е-майл
 
Аватар для jungo
 
Регистрация: 14.11.2007
Сообщений: 163
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Не знаю, на сколько правильно я Вас понял.
Помня о том, что по каким-то причинам, у Вас не всегда нормально читаются вложения, представляю код макроса. Вставьте его в файл и запустите.
Код:
Sub Simv()

    Dim NSimv As Integer, i As Long, Sum As Long
    
    Columns("C").ClearContents
    NSimv = 65: Sum = 0
    
    For i = Cells(Rows.Count, "B").End(xlUp).Row To 2 Step -1
        If Cells(i, "B") <> "" Then
            Sum = Sum + Cells(i, "B")
            If Sum > 40 Then
                NSimv = NSimv + 1
                Cells(i, "C") = Chr(NSimv)
                Sum = Cells(i, "B")
            Else
                Cells(i, "C") = Chr(NSimv)
            End If
        End If
    Next

End Sub
Всё супер!!!
Зло берёт! Я бился три дня, ночью заснуть не мог а вы так ОП! и всё готово!!!
И очень прошу, если можно обьяснить мне этот макрос.
Jungo must die!!! (C) Bill Gates.
jungo вне форума
Старый 21.05.2008, 12:14   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1) Очищаем столбец "C".
2) Присваиваем значения переменным: NSimv = 65 - код символа "A" по таблице ASCI, Sum=0 - начальное значение промежуточной суммы.
3) Организуем цикл от последней заполненной строки в столбце "B" до строки 2 с шагом -1 (снизу вверх).
4) Если очередная ячейка пуста - пропускаем.
5) К текущей сумме прибавляем значение текущей ячейки.
6) Если сумма превышает 40 - увеличиваем код символа на 1 и в ту же строку столбца "C" помещаем символ, соответствующий этому коду (т.е. следующий), и присваиваем сумме значение текущей ячейки (начинаем сложение заново). Иначе - в строку столбца "C" помещаем символ, соответствующий текущему коду.
Вот и все.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 21.05.2008, 14:02   #6
jungo
Форумчанин Подтвердите свой е-майл
 
Аватар для jungo
 
Регистрация: 14.11.2007
Сообщений: 163
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
1) Очищаем столбец "C".
2) Присваиваем значения переменным: NSimv = 65 - код символа "A" по таблице ASCI, Sum=0 - начальное значение промежуточной суммы.
3) Организуем цикл от последней заполненной строки в столбце "B" до строки 2 с шагом -1 (снизу вверх).
4) Если очередная ячейка пуста - пропускаем.
5) К текущей сумме прибавляем значение текущей ячейки.
6) Если сумма превышает 40 - увеличиваем код символа на 1 и в ту же строку столбца "C" помещаем символ, соответствующий этому коду (т.е. следующий), и присваиваем сумме значение текущей ячейки (начинаем сложение заново). Иначе - в строку столбца "C" помещаем символ, соответствующий текущему коду.
Вот и все.

Всё гинеальное простынь...
Огромное спасибо!
Jungo must die!!! (C) Bill Gates.
jungo вне форума
Старый 21.05.2008, 14:21   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Во вложении есть формула, расставляющая буквы...
Вложения
Тип файла: rar Station_simple.rar (6.6 Кб, 19 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 21.05.2008, 15:25   #8
jungo
Форумчанин Подтвердите свой е-майл
 
Аватар для jungo
 
Регистрация: 14.11.2007
Сообщений: 163
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Во вложении есть формула, расставляющая буквы...
Немогу открыть ЕКСЕЛЬ из за кирилицы, можно формулу в пост?
Jungo must die!!! (C) Bill Gates.
jungo вне форума
Старый 21.05.2008, 15:33   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
=ЕСЛИ(RC[-1]="";;СИМВОЛ(КОДСИМВ(СМЕЩ(RC;МИН(ЕСЛИ(R[1]C:R46C=0;10000;СТРОКА(R[1]C:R46C)-СТРОКА()));))+ ЕСЛИ(СУММ(RC[-1]:R46C[-1])-СУММПРОИЗВ(R[1]C[-1]:R46C[-1]*(R[1]C:R46C<СМЕЩ(RC;МИН(ЕСЛИ(R[1]C:R46C=0;10000;СТРОКА(R[1]C:R46C)-СТРОКА()));)))<=40;;1)))
это формула массива. в 46 строку в 3-й колонке надо поместить латинскую А (после таблицы)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 21.05.2008, 15:47   #10
jungo
Форумчанин Подтвердите свой е-майл
 
Аватар для jungo
 
Регистрация: 14.11.2007
Сообщений: 163
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Код:
=ЕСЛИ(RC[-1]="";;СИМВОЛ(КОДСИМВ(СМЕЩ(RC;МИН(ЕСЛИ(R[1]C:R46C=0;10000;СТРОКА(R[1]C:R46C)-СТРОКА()));))+ ЕСЛИ(СУММ(RC[-1]:R46C[-1])-СУММПРОИЗВ(R[1]C[-1]:R46C[-1]*(R[1]C:R46C<СМЕЩ(RC;МИН(ЕСЛИ(R[1]C:R46C=0;10000;СТРОКА(R[1]C:R46C)-СТРОКА()));)))<=40;;1)))
это формула массива. в 46 строку в 3-й колонке надо поместить латинскую А (после таблицы)
Формула на русском языке у меня не берёт, 'A' ставить в столбец 4(D)?
Jungo must die!!! (C) Bill Gates.
jungo вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка рус/англ magistr_forever SQL, базы данных 1 18.07.2008 20:50
СЧЁТЕСЛИ по 2 и более критериям Gadar Microsoft Office Excel 6 27.05.2008 09:25
касательно выборки по 2 критериям Volodymyr Microsoft Office Excel 6 29.02.2008 10:06
ПОДСЧЕТ ИТОГОВ ПО 2 КРИТЕРИЯМ WIC Microsoft Office Excel 2 26.02.2008 11:49