12.07.2011 09:37
andrey_f
 
Цитата:
Glen
Цитата:
administrator Суммировать накопительным итогом с конца строки,
+ условие ЕСЛИ(накопительный итог = 1; СТОЛБЕЦ();"")
Ну так то да, идея верная, только
1. Строка динамическая и я не знаю где её конец
2. а как это суммировать с конца
3. сдается мне что речь заходит о VBA, который я так и не успел освоить..

да еще строк тоже примерно 5-6 тыс. и кол-во их тоже не известно

а нельзя замутить только формулами Excel в одной-двух ячейках для каждой строки?
Стандартного решения не вижу. Если никто не поможет, то могу написать макрос, там очень просто все (с тебя, если что, пример файла).
12.07.2011 10:49
RazVal
 
Цитата:
Glen сдается мне что речь заходит о VBA, который я так и не успел освоить...
а нельзя замутить только формулами Excel в одной-двух ячейках для каждой строки?
Нельзя, но макрос VBA - действительно, очень простой. Во вложении файлик с функцией, выводящей последнее не нулевое значение - в своё время для клиента делал.
Вложения
Тип файла: zip LastVal.zip (5.7 Кб, 78 просмотров)
12.07.2011 10:59
Glen
 
RazVal
Валер, спасибо, то что нужно.
Вопрос закрыт. Задача решена.
12.07.2011 11:05
andrey_f
 
Цитата:
Glen Вопрос закрыт. Задача решена.
Я не совсем понял задачу, я думал тебе нужен номер столбца именно )
В Инвенторе есть похожая функция, но она не будет работать, если в ячейке будут 0 вместо пустоты:
viewtopic.php?p=4171#p4171
12.07.2011 11:25
Glen
 
Цитата:
administrator номер столбца именно )
Ну да нужен именно номер столбца. Сейчас буду напрягать мозг и пытаться высислить с помощью предложенной функции номер столбца. Может что то и получится. Есть небольшие навыки программирования на Паскале :oops:
12.07.2011 11:35
Glen
 
Ну вот может вот так:
Function LastVal(diapazon As Range) As Single
Dim i As Byte
Dim yachejka As Range
Dim v_ya As Variant
Dim temp As Variant
Dim stolb As Integer
v_ya = ""
stolb = 4
For Each yachejka In diapazon
v_ya = yachejka.Value
If v_ya > 0.1 Then
temp = v_ya
stolb = yachejka.Column
End If
Next yachejka
LastVal = stolb
End Function

' stolb = 4 - "4" это мои внутренние потребности
12.07.2011 11:58
andrey_f
 
Цитата:
Glen Ну вот может вот так:
...
yachejka.Column
...
Все верно, колонка так и вытягивается.
12.07.2011 13:58
andrey_f
 
Цитата:
Glen
да еще строк тоже примерно 5-6 тыс. и кол-во их тоже не известно
На таком объеме данных эксель может подвисать. Если ситуация будет критична, то можно в массиве все обработать - на моем опыте скорость выполнения возрастает раз в 100.
12.07.2011 14:53
Glen
 
Чтож, буду усиленно изучать массивы, если время свободное когда-нибудь появится. Спасибо за совет.
19.07.2011 23:28
6agirka
 
Ребята, всем привет!

Я работаю с базой данных по закупке товаров, в моем файле Excel уже больше 9000 заполненных строк. Когда что-либо ищу с помощью фильтров, он подвисает. Ситуация ещё не критична, но уже нужно думать о дальнейших последствиях увеличения базы.

ПОМОГИТЕ ПОЖАЛУЙСТА СОВЕТОМ!!!!

Есть несколько вариантов:
1. Перенести выполенные заявки в отдельный файл, удалив их из рабочего.
2. Остановить работу с основным рабочим файлом. Все новые заявки с определенной даты записывать под новым шифром в новом рабочем файле (однако, все оплаты по счетам я записываю в ручную, а значит, прийдется отмечать оплаченные счета в 2-х файлах одновременно - старом и новом).
3. Подождать до нового года. Аннулировать все невыполненные заявки. Начать вести новую базу данных. В средем, за месяц приходит около 1500 новых позиций, это значит 9000строк+7500строк= 16500строк, не слишком ли много? (с учетом, что фильтром поиска пользуюсь не менее 10 раз в час? Комп будет не просто тупить, а висеть???)

ЧТО ДЕЛАТЬ ДАЛЬШЕ?????

ПС Возможности перейти на другое программное обеспечение пока нет, т.к. пользуемся только лицензионным и т.к. средства на другую программу "верхушка" ещё не готова выделить.
Часовой пояс GMT +3, время: 03:15.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.