Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 18:58 29.06.24 
Компютри и Интернет
   >> Електронни таблици
*Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Огромна база???нови  
Автор DDeli (Maya - 25.11.02)
Публикувано14.03.05 15:12



Привет!

Имам един sheet в който вече има над 20,000 реда със записи. Има 5 колони, в които имам формули (и май всичките са Vlookup) но ексела постоянно калкулира (calculate ...% отдолу в прозорчето) Явно отнема доста време да пре-пресмята всички записи а това адски ме изнервя и бави.
Имате ли идея как да го улесня???



Тема Re: Огромна база???нови [re: DDeli]  
Автор kibik (позициониран)
Публикувано14.03.05 15:58



ако стойностите не ти трябва да се променят; маркираш областта с формулите даваш
Copy- Paste special- Value

така няма да "тегли" Vlookup, и ще е лесна за обработка

поне аз така правя де...


Редактирано от kibik на 14.03.05 16:03.



Тема Re: Огромна база???нови [re: DDeli]  
Автор Щиpлиц (разузнавач)
Публикувано14.03.05 16:23



Неколкократно съм споменавал, че за такива случаи се ползва VBA код.

Разликата е в това, че VBA кода е само на едно място, а не е "клефнат" на цялата страница с 20 000 повторения. Според мен няма абсолютно никакъв смисъл от 20 000 еднакви на вид формули. С подходящо ограничение, кода може да се изпълнява като формула само за избрана клетка от страницата, в зависимост от конкретния случай. Адреса на клетката може да се вземе от събитието "Change". Разлика в скоростта на работа ще има заради това, че формулата ще пресмята само тогава, когато има редакция на клетка, и то ще извърши наново изчислението само за тези клетки, които са обвързани с формулата, но няма да обхожда цялата колона надолу (или нагоре) 20 000 реда.

По-конкретно не мога да кажа нищо, защото нямам и един байт от файла, за който споменаваш. ;о)

Успех.


Щирлиц

Тема Re: Огромна база???нови [re: Щиpлиц]  
Автор DDeli (Maya - 25.11.02)
Публикувано14.03.05 19:01



Мммдаааа, това ще е . Можеш ли ми дадеш идея как в ВБ да напиша формулата Vlookup която да връща стойности от предварително зададения списък - или просто пейстни един код който да разгледам и пригодя за моите"прости" формулки. 10х!!!



Тема Re: Огромна база???нови [re: DDeli]  
Автор Щиpлиц (разузнавач)
Публикувано14.03.05 22:40



Дай някакъв пример все пак...


Щирлиц

Тема Re: Огромна база???нови [re: DDeli]  
Автор f(x)dx ()
Публикувано15.03.05 08:14



Можеш да започнеш с това:
Tool->Macro->Record New macro->OK Появява ти се едно малко прозорче.
След това започваш да си въвеждаш формулата vlookup. (
Накрая даваш Stop естествено.
Това е най-лесният начин да пишеш макроси. След като си го написал, можеш да влезнеш в кода му и да видиш какво представлява. най-вероятно няма да ти върши работа, но вече имаш някаква основа.

Шум в офиса? Слушайте Paul van Dyk


Тема Re: Огромна база???нови [re: Щиpлиц]  
Автор DDeli (Maya - 25.11.02)
Публикувано15.03.05 09:42



Надявам се това да е достатъчно ясно:

кол А Име - идва с VLOOKUP от колона H, гледайки в "names" range

кол B Месец - идва с Month(col G )

кол C Година - идва с YEAR(col G )

Кол D Избран номер Име - идва с VLOOKUP от колона I, гледайки в "tel" range

кол Е Група - идва с VLOOKUP от колона J, гледайки в "type" range; 2

кол F Вид - идва с VLOOKUP от колона J, гледайки в "type" range; 3

кол G Дата и час (има си ги)

кол H Тел номер (има си ги)

кол I Избран номер (има си ги)

кол J Услуга и направление (има си ги)

кол K Количество (има си ги)

кол L Такса (лв.) (има си ги)

Идеята е , да се използва VB за формулите в първите 6 колони. Иначе ranges names, tel, type са в отделен sheet.

Ако не е достатъчно ясно, ще дообяснявам




Тема Re: Огромна база???нови [re: DDeli]  
Автор alexoff ( (_)] .)
Публикувано15.03.05 10:18



Dim Nomenclature702 As Range
Dim LookUpValue As Variant

Set Nomenclature702 = Range("Nomenklatura702")

For i = 2 To Application.Count(Range("A:A")) + 1

LookUpValue = Application.VLookup(Range("F" & i).Value, Nomenclature702, 2, False)


Range("L" & i).Value = LookUpValue

Next i


Nomenclature702 е област от клетки в един шийт от която се прави сравнението

Това е нещо което писах преди няколко дни за един доста обемист файл с няколко хиляди реда данни.

Редактирано от alexoff на 15.03.05 10:23.



Тема Re: Огромна база???нови [re: DDeli]  
Автор f(x)dx ()
Публикувано15.03.05 10:38



охооо, на МТел ми мирише тук.
Айде като се поосвободя ще помисля малко. Струва ми се, че има и други варианти за оптимизация освен VВА

Шум в офиса? Слушайте Paul van Dyk


Тема Re: Огромна база???нови [re: f(x)dx]  
Автор DDeli (Maya - 25.11.02)
Публикувано15.03.05 11:29



Не мирише ами напрово смърди - това е разбивката по проведени разговори с всеки номер, който е избиран




Страници по тази тема: 1 | 2 | >> (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.