Excel - база данни

20 отговора 1360 прегледа
#1

Excel - база данни

Привет!
Имам нужда от съвет.

Имам таблица в Excel, включваща 2 страници:
1 Sheet - база данни
съдържа:
1 колона - данъчен номер
2 колона - име на фирма

2 Sheet - резултативна таблица
където искам като изпиша име на фирма да ми извежда данъчен номер.

Имате ли идея как да го направя?

Отговор
в отговор на need info #2

Re: Excel - база данни

Може да използваш в резултативната таблица формулата VLOOKUP(клетката с името на фирмата;таблицата с базата;2-ра колона с дан.номер;0). Аз бих подредила таблица 1 да е с име на фирма в колона 1 и в колона 2 да е дан.номер.

Но много внимавай да не сбъркаш като пишеш името на фирмата.

Може би е по-добре да си направиш List с имената на фирмите и после да вържеш формулата към него (имаше го обяснено някъде из темите как се прави списък от Validation\List\F3 и т.н.)

Дано да ти е било полезно, ако ли не, пиши да поясним.

Успех!

Отговор
в отговор на DDeli #3

Re: Excel - база данни

Честно да ти кажа не ми стана мн. ясно.
Може би и аз не обясних мн. ясно идеята си.
Имам база от данни съдържаща данъчни номера и имена на съответните фирми /списъкът може да е повече от 1000 записа/.
Искам в друга таблица като изпиша даден данъчен номер да ми изведе срещу него име на фирма.
Да си играя да описвам запис по запис във формулата ми се струва малко неефективно.
Благодаря, че се включи ;-)

Отговор
в отговор на need info #4

Re: Excel - база данни

не се описват запис по запис във формулата, а се посочват области от клетки в Sheet 1. В момента нямам много време да обяснявам но ще се опитам да направя един пример и да го пусна, така щети стане ясно

Go Install Analysis Toolpack!
Отговор
в отговор на alexoff #5

Re: Excel - база данни

много ти благодаря! ;-)

Отговор
в отговор на need info #6

Re: Excel - база данни

Да предположим, че в Sheet1 в колона А от ред 2 до ред 1000 са ти данъчните номера, а в колнона В от ред 2 до ред 1000 – съответните имена на фирмите. Ред 1 е за наименованието на колоните. Нека в Sheet2 в резултатната таблица. В колона А от ред 2 до ред който си искаш са данъчните номера. В коя колона са имената няма значение. Формулата VLOOKUP(A2;Sheet1!$A$1:$B$1000;2;FALSE) извежда името на фирмата, чийто данъчен номер е записан в клетка А2. С копи/пейст надолу можеш да си изкараш имената на фирмите с данъчен номер, въведен в А3, А4, А5 и т.н. Обръщам внимание на доларите във формулата. Без тях тя няма да сработи коректно за всички резултатни клетки.
Формулата може да бъде модифицирана по следния начин:
IF(ISBLANK(A2);"";VLOOKUP(A2;Sheet1!$A$1:$B$1000;2;FALSE))
В този случай, когато имаш празно поле в колона А на Sheet2, съответната клетка в колоната с имената също е празна, ако въведеш данъчен номер, който съществува в базата данни в Sheet1, ще ти изведе името. Ако пък въведеш несъществуващ данъчен номер извежда #N/A

Надявам се, че това е, което искаш. Ако нещо не работи или искаш да ти обясня логиката на формулите – само кажи.

То, не че не мога, ама има ли смисъл, като няма значение
Отговор
в отговор на f(x)dx #7

Re: Excel - база данни

Много сте мили!
Мисля, че разбрах идеята. Сега ми остава да се пробвам да приложа идеята за нещо по - сложно. Ако имам затруднения пак ще разчитам на вас! ;-)

Отговор
в отговор на need info #8

Re: Excel - база данни

моля,
пак заповядай. ние за това направихме клубчето

То, не че не мога, ама има ли смисъл, като няма значение
Отговор
в отговор на f(x)dx #9

Re: Excel - база данни

Подобен въпрос: за функциите vlookup и hlookup. Само че, там, където трябва да се въвежда таблицата с базата - table_array, да не е област от клетки от worksheet, ами database. По-скоро въпросът ми е как една таблица от ексел да я превърна в database и после как да извличам информация от нея?
В момента работя с готов файл - преди мен някакъв бивш колега го е правил и е ползвал функцията vlookup. Във формулата обаче на мястото на аргумента table_array има посочена някаква база данни - в смисъл името не е име на шийт от активната книга, но е подобно на друг шийт от файла. Съответно виждам, че и данните, които се дърпат са от този шийт. Също и стойността на аргумента col_index_num не отговаря на номера на колоната, от която се дърпат данни от шийта, който виждам, че се ползва. Не знам дали успяхте да разберете обясненията ми... чак аз се пообърках :)). Другото, което виждам, като пусна Trace Precedents от Formula Auditing, че освен стрелките към клетките, които се ползват, също има пунктир до някаква иконка-табличка. Попрочитайки хелпа, установих, че подобни база данни се съхраняват с разширение *.odc. Да ама не успях да намеря нищо подобно запаметено в компютъра. Как мога да разбера какво е ползвал, как го е направил, къде е запаметено, ако въобще съществува отделен файл? Сигурно е нещо простичко, ама на - не мога да разбера
Моля, помогнете...

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

Re: Excel - база данни

Абе досещам се за какво говориш, ама що не вземеш да копираш формулата от някоя клетка, за да видя за какво точно става въпрос.

То, не че не мога, ама има ли смисъл, като няма значение
Отговор
в отговор на koiato #11

Re: Excel - база данни

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


[email protected]

Go Install Analysis Toolpack!
Отговор
в отговор на f(x)dx #12

Re: Excel - база данни

=IF(ISBLANK(A399);"";IF(ISBLANK(E399);VLOOKUP(G399;KlientiEGN;11;FALSE);VLOOKUP(E399;KlientiNo;12;FALSE)))
Значи това е формулата, която ме мъчи страшно много. Взех ред 399 случайно, знаете, че няма значение. Става въпрос за KlientiEGN и KlientiNo. Във файла имам един шийт "Клиенти" с колони: №; ЕГН; Име; Презиме; Фамилия; Град; ул. №; Телефон; GSM; Пол. Работя в друг шийт "Регистър". Точно тази формула първо проверява дали в шийт "Регистър" ми е въведена дата (ISBLANK(A399);"";), после проверява дали е въведен код на клиент (ISBLANK(E399)); ако да - ми взема от шийт "Клиенти" данните от колоните Име, Презиме, Фамилия, които отговарят на кода на клиента и ги слага в една клетка - Трите имена - VLOOKUP(G399;KlientiEGN;11;FALSE). Последното - VLOOKUP(E399;KlientiNo;12;FALSE) не знам какво прави. Всъщност не съм сигурна, че и предното точно това прави .

Но ето и по-прост вариант на същото нещо:
=IF(ISBLANK(A399);"";VLOOKUP(C399;Proceduri;2;FALSE))
Тук се ползват данни от друг шийт - "Процедури" с колони: Код; Име; Цена. Пак работя с "Регистър". Проверява дали е въведен код на процедура, ако да ми вкарва името на процедурата, съответстващо на въведения код. Да ама какво е това Proceduri??? се пита в задачата.

Алекс ще ти пратя файлчето, естествено съм изтрила всички данни и съм оставила само по един ред с фиктивни наименования, колкото да видиш формулите, то и без това в оригиналния си вид не може да се прати.
Хайде, очаквам помощ, пък може и вие да се възползвате от нещо....

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

Re: Excel - база данни

Така както си го написала Proceduri е име на област от клетки в страницата Процедури. Като натиснеш F3 ще видиш списък на областите на които са били дадени имена.

Go Install Analysis Toolpack!
Отговор
в отговор на koiato #14

Re: Excel - база данни

Хм, в теорията пише, че наименоването на области улеснявало възприемането на формулата. Дрън-дрън. Всъщност може би помага, ако знаеш що е то наименовани области. Та това животно е област в някакъв шийт на ексел, на която някой е задал име. Най-простият начин да направиш това е като маркираш съответната област (примерно А1:В10), после кликаш в полето, което е горе отляво на лентата, в която ти се изписват формулите. Това поле се казва Name Box и в него се изписва името на съответната област. По дифолт в Name Box-а се изписва името на клетката, в която се намираш в момента. Та да се върна на мисълта си. След като си маркирала съответната област, кликаш в Name Box-а и пишеш как искаш да ти се казва областта. За препоръчване името е да е на латиница, без интервали, точки, запетаи и т.н.
В случая с първата формула, твоят колега използва две наименовани области - KlientiEGN и KlientiNo. Трудно ми е да ти кажа къде са и какво има в тях, но най лесният начин да провериш е като натиснеш F5 (това е еквивалентно на Ctrl+G или Edit->Go To). Излиза ти екран, в който в полето Go To са показани всички наименовани области. В твоя случай трябва да видиш поне KlientiEGN и KlientiNo. Щракаш два пъти на някоя от тях и Ексел автоматично те хвърля в най-горната и най-лява клетка на областта, като едновременно с това маркира самата област.
А ето и конкретно какво всъщност прави първата формула.
=IF(ISBLANK(A399);"";IF(ISBLANK(E399);VLOOKUP(G399;KlientiEGN;11;FALSE);VLOOKUP(E399;KlientiNo;12;FALSE)))
Първо проверява дали клетка А399 е празна, ако е празна, резултатът е също празна клетка (“”). Ако не е празна, проверява дали е празна клетка Е399. Ако клетка Е399 също е празна, тогава в резултатната клетка се появява стойността, която се намира в единайстата колона на областта KlientiEGN и стои срещу текстът/числото, което се намира в клетка G399. И накрая, ако клетка Е399 не е празна, резултатът е стойността, която се намира в дванайстата колона на областта KlientiNo, срещу която стои текстът/числото в клетка Е399.
Какво има в клетки А, Е и G – ти си знаеш.

както се казва - Нещо ясно?

То, не че не мога, ама има ли смисъл, като няма значение
Отговор
в отговор на f(x)dx #15

Re: Excel - база данни

Йее, бейби! Страшно съм ви благодарна, разкрих загадката. То имало и скрита колона, където се осъществява конкатенация на клетки и всъщност това ми е било колона 11 в единия и 12 в другия случай. Аааааааа, много съм щастлива. Браво, момчета!!! Така вече може да се работи ...

Отговор
в отговор на koiato #16

Re: Excel - база данни

Колеги, искам да ви питам защо се мъчите с тези сложни формули а не използвате функциите за бази данни - DGET например?

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

Re: Excel - база данни

признавам си, че тази функция не съм я ползвал, в момента просто нямам много време да я разледам, но можеш ли да дадеш пример как да приложа функцията. Например имам две колони в едната числата от 1 до 12 а в съседната съответстващите месеци. в друга клетка въвеждам число от 1 до 12 а в съседната прилагам функция така че да ми изведе съотвестващия месец. Ето за това аз използвам VLOOKUP(), която между другото въобще не е сложна функция

Go Install Analysis Toolpack!
Отговор
в отговор на alexoff #18

Re: Excel - база данни

съгласен съм, че за посочения от теб случай VLOOKUP() е по-удобния и лесен избор, но тук темата е бази данни: примерно 40 колони и 3000 реда. DGET извлича от базата по зададени критерии. Ползвам я от години и нямам ядове с нея. Ако искаш малко по късно ще ти пратя някакъв пример

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

Re: Excel - база данни

За подобни масиви аз използвам функции за масиви и комбинации от SUM и IF

Go Install Analysis Toolpack!
Отговор
в отговор на alexoff #20

Re: Excel - база данни

Хмм, дай ми email да ти пусна нещо, и сам ще прецениш

Отговор