броене ....

18 отговора 0 прегледа
#1

броене ....

Здр
В колона B:B съм записал различни думи ...., а в колона C:C
датите от 01.01.2008 до края ан годината .
Въпроса ми е : Как да изброя определена дума по зададена дата ?
Примерно : искам да видя колко пъти се среща думата химикал на дата 23.09.2008 .

Отговор
в отговор на intermaniq #2

Re: броене ....

Пак Excel, и пак VBA...

Сега тотално ме обърка, и вече не знам какво точно правиш. Пишеш, че в колона В имаш дати от 01.01.2008 до 31.12.2008. Сега се оказва, че търсиш колко пъти се повтаря това нещо в една и съща дата!?!? Да разбирам ли, че датите не са поредни, ами една и съща дата може да се повтаря няколко пъти?

Можеш ли да направиш примерен файл, който да огледаме? Може да го качиш някъде на фрий сървър.

Щирлиц
Отговор
в отговор на Щиpлиц #3

Re: броене ....

как да кача файла в форума ????

Отговор
в отговор на intermaniq #4

Re: броене ....

Не във форума, а в някой free server. Цъкни на сигнатурата ми (Надписа "Щирлиц" най-отдолу), и се регистрирай. Безплатно е, и можеш да си upload file вътре. Сървъра работи само денем, но е достатъчен да ни свърши работа.

Щирлиц
Отговор
в отговор на Щиpлиц #5

Re: броене ....

готово ка4их го

Отговор
в отговор на intermaniq #6

Re: броене ....

Е, убава работа. ;о) Ми, дай линка де.

В твоята директория само ти си виждаш файловете. За да ги вземе някой друг - трябва да напишеш линка.

Щирлиц
Отговор
в отговор на intermaniq #8

Re: броене ....

не ми е ясно кой линк да кача и каде
извинявай

Отговор
в отговор на intermaniq #9

Re: броене ....

[линк]

готово

Редактирано от intermaniq на

Отговор
в отговор на intermaniq #10

Re: броене ....

Ахъм. Отворих го. ;о) Май се схванах вече. Горе-долу ми стана ясно какво искаш да постигнеш, но ако го направиш със сорс код на VBA - ще работи бавно. Ще опитам след малко да изровя информация за LOOKUP функциите на Excel. Едно време ги знаех, но с Excel не съм се занимавал отдавна...

Щирлиц
Отговор
в отговор на intermaniq #12

Re: броене ....

Моля, няма ли ко да ми поскаже поне как да го направя

Отговор
в отговор на intermaniq #13

Re: броене ....

Ми, аз те забравих бре, момко. ;о(( За което се извинявам.

Преправих файла, и съм ти го качил пак там в твоята папка. Разгледай, и ако има нещо неясно - питай.

Новите колони на страница "Данни" по принцип се ползват само служебно от таблицата, и може да се скрият, за да не се пречкат по екрана.

Щирлиц
Отговор
в отговор на Щиpлиц #14

Re: броене ....

Благодаря ти Щирлиц !
Може ли да попитам ...
Думичките химикал, бюро и тнт... не ги изписвам на ръка ,те се отпечатват посредством макрос ..... та въпроса ми е дали за това , каквото и да се опечата все нули се изписват , само в " И други..." се отпечатва единица.
Тоест Думичките, които се отпечатват и думичките (заглавията на колоните) не се разпознават.....
А според кода ако отпечатаната думичка е различна от думичките (заглавията на колоните) то да се отпечата 1 в колона "И други"

Отговор
в отговор на intermaniq #15

Re: броене ....

Именно защото все още не знаем какво се опитваш да направиш - нещото става, ама половинчато.

Понеже по начина, по който си го организирал, се получава дублиране на редовете с дати, съм написал мъничък макрос, който изписва в нужната колона "1", ако намери някоя от познатите за него думи, и в последната колона "1", ако думата е различна от всички тях. Ако искаш да добавиш и/или промениш дума - ще се налага редакция на този макрос.

Това решение НЕ Е хубаво. Ако решиш да споделиш по-подробно - може да намерим елегантно решение, при което макроса няма да е нужен, и ще имаш по-голяма гъвкавост на таблицата.

Защо по-голяма гъвкавост!? Ами, защото с този макрос разположението на единиците и нулите е фиксирано. Ако изтриеш колона, или добавиш колона там - макроса няма как да разбере това, и продължава да вписва във фиксираните за него колони.

Дойде ми на ум, че би могло в клетките, които са най-отгоре в колоните с помощните числа ("1" и "0") може да се запишат думичките, които искаш да търсиш, а във самите клетки - формулите: =IF($B2=D$1;1;0)
Тази формула я разполагаш в клетка D2, и я копираш с изтегляне надясно до колона J, и надолу през всички редове, в които има данни. Недостатъка на този начин е, че множеството формули в таблицата раздува файла, и той става голям. И също така когато добавяш нов ред с данни - ще се наложи да копираш формулата надолу.

Е, засега толкова. Пиши пак.

П.П. Ако искаш да сложиш формули в клетките от колона D до колона J - ще трябва да изтриеш макроса, иначе той ще изтрива формулите.

Щирлиц

Редактирано от Щиpлиц на

Отговор
в отговор на Щиpлиц #16

Re: броене ....

Здр. Щирлиц !!!
Използвах идеяята която ми даде всичко се получи ,но наистина много бавна стана програмата !!!

Отговор
в отговор на intermaniq #17

Re: броене ....

Е, тогава можеш да си върнеш макроса, и ако някъде ти се налага да правиш корекции на колоните - ще трябва да променяш и макроса.

Макроса работи по-бързо, защото сработва само по веднъж на всяка промяна на някоя клетка в таблицата. Докато в случая с формулите в клетките - на Excel се налага да опреснява изчисленията във всички клетки с формули, на всяко вписване на нещо си там. Нормално е, колкото повече са формулите - толкова повече време да му отнеме.

И все пак мисля, че си се насочил към грешно решение за програмата ти. Заслужава си да опиташ с нещо просто, но работещо - VB6. Лесно се отваря и работи с Access база данни, контролите му са по-удобни за работа, и не на последно място - VB6 създава самостоятелно ЕХЕ, което работи без нищо друго. Във варианта, който си започнал - таблицата ти изисква MS Office, и също така ще си зависим до известна степен от версията на Excel. Писал съм доста по-големи проекти под Excel, и мога да го определя само като изгубено време.

Щирлиц
Отговор
в отговор на Щиpлиц #18

Re: броене ....

Бих се опитал този проект да го направя с VB6, но аз сега тепърва започвам с VB6... много неща не са ми ясни как стават .

Отговор
в отговор на intermaniq #19

Re: броене ....

Като гледам, и VBA не ти е ясно, но все пак полагаш усилия. Прехвърли си усилията към VB6, и бързо ще разбереш кое как.

Щирлиц
Отговор