Uredski alati

Excel load data row by id

alankish pet 18.5.2012 08:59

Pozdrav, svima

 

Dakle trebam riješenje za jedan problem u Excelu. Radi se o sljedećem imam tablicu/sheet koji moze biti i externi. a sastoji se od uređenih polja, u obliku:

 

ID | Description | Price

 

Ono što ja trebam da u excel tablici koja će služiti za obračun da mi se prema columnu koji je definiran kao ID prema unesenom ID-u popuni polje Description i Price.

 

Da li je tako nešto moguće u Excelu, ili mi je jedino riješenje Desktop/web app u koji importam .xls ili CSV file?

alankish pet 18.5.2012 09:58
klimama kaže...

Za to koristiš funkciju VLOOKUP:

 

Primjer:

U ćeliji F2 je formula =IFERROR(VLOOKUP(E2;$A$2:$C$6;2;FALSE);"")

 

 

 

Hvala , klimama, koliko je to elegantno riješenje, pošto se radi o cca 900 zapisa?

 

Znači, ja u ćeliju unosim ID koji je u obliku xx xxx xx, i da Excel sam prema tomu "ulovi" vrijednost odnosno Description i Price ? Da li je moguće da to ulovi sa externog referentog fjala, koji je zapravo troškovnik?

klimama pet 18.5.2012 10:07

Moguće je.

 

Ako su obje datoteke u istom folderu, onda formula u ćeliji F2 bude ovakva:

 

=IFERROR(VLOOKUP(E2;[troskovnik.xlsx]List1!$A$1:$C$6;2;FALSE);"")

 

troskovnik.xlsx je naziv datoteke iz koje se vuku podatci, a List1   je naziv radnog lista   (Sheet).

 

Ako nisu u istom folderu, onda dodaješ putanju u formulu.

Npr. ako je datoteka troskovnik u folderu troškovnik na disku D:

 

=IFERROR(VLOOKUP(E2;'D:\troškovnik\[troskovnik.xlsx]List1'!$A$1:$C$6;2;FALSE);"")

 

 

 

 

alankish pet 18.5.2012 10:42
klimama kaže...

Moguće je.

 

Ako su obje datoteke u istom folderu, onda formula u ćeliji F2 bude ovakva:

 

=IFERROR(VLOOKUP(E2;[troskovnik.xlsx]List1!$A$1:$C$6;2;FALSE);"")

 

troskovnik.xlsx je naziv datoteke iz koje se vuku podatci, a List1   je naziv radnog lista   (Sheet).

 

Ako nisu u istom folderu, onda dodaješ putanju u formulu.

Npr. ako je datoteka troskovnik u folderu troškovnik na disku D:

 

=IFERROR(VLOOKUP(E2;'D:\troškovnik\[troskovnik.xlsx]List1'!$A$1:$C$6;2;FALSE);"")

 

 

 

 

 

 

Sad ću se ići pozabaviti time. Ja sam već htio .xls fajl prabacit u csv i upucat u SQL server i ići vuć to van sa queryijima {#}

Ezio pet 18.5.2012 10:49

imam recimo vrijednost ST2, ST22, ST23, ST24 a u lookup tablici definirano da to pretvara u XYZ2, XYZ22, XYZ23, XYZ24.  Događa se to da provjeri samo ST2, tj. prve tri znamenke i sve vrijednosti pretvara u XYZ2 zanemarujući brojke na kraju:2,3,4...

Zašto?

sasa pet 18.5.2012 11:18
Ezio kaže...

imam recimo vrijednost ST2, ST22, ST23, ST24 a u lookup tablici definirano da to pretvara u XYZ2, XYZ22, XYZ23, XYZ24.  Događa se to da provjeri samo ST2, tj. prve tri znamenke i sve vrijednosti pretvara u XYZ2 zanemarujući brojke na kraju:2,3,4...

Zašto?

kako izgleda formula?

sasa pet 18.5.2012 11:20
alankish kaže...
klimama kaže...

Moguće je.

 

Ako su obje datoteke u istom folderu, onda formula u ćeliji F2 bude ovakva:

 

=IFERROR(VLOOKUP(E2;[troskovnik.xlsx]List1!$A$1:$C$6;2;FALSE);"")

 

troskovnik.xlsx je naziv datoteke iz koje se vuku podatci, a List1   je naziv radnog lista   (Sheet).

 

Ako nisu u istom folderu, onda dodaješ putanju u formulu.

Npr. ako je datoteka troskovnik u folderu troškovnik na disku D:

 

=IFERROR(VLOOKUP(E2;'D:\troškovnik\[troskovnik.xlsx]List1'!$A$1:$C$6;2;FALSE);"")

 

 

 

 

 

 

Sad ću se ići pozabaviti time. Ja sam već htio .xls fajl prabacit u csv i upucat u SQL server i ići vuć to van sa queryijima {#}

samo mala optimizacijska napomena. možeš koristiti funkciju ISNA umjesto ISERROR, jer je ISNA baš za VLOOKUP (VLOOKUP vraća isključivo NA grešku ukoliko nešto ne funkcionira). i lookup podaci mogu biti bilo gdje, ne samo u istom folderu, ali se onda mora paziti na to da se upiše cijela putanja do datoteke.

Ezio pet 18.5.2012 11:23
sasa kaže...
Ezio kaže...

imam recimo vrijednost ST2, ST22, ST23, ST24 a u lookup tablici definirano da to pretvara u XYZ2, XYZ22, XYZ23, XYZ24.  Događa se to da provjeri samo ST2, tj. prve tri znamenke i sve vrijednosti pretvara u XYZ2 zanemarujući brojke na kraju:2,3,4...

Zašto?

kako izgleda formula?

 

=VLOOKUP(N1;O:P;2)

Ezio pet 18.5.2012 12:21
sasa kaže...

probaj ovu funkciju:

=REPLACE(LEFT(A1;2);1;2;"XYZ")&MID(A1;3;LEN(A1)-2)

 

a tu je i slika da vidiš kako to meni izgleda.

 

ali to nije isto kao kad se koristi lookup table? ja bih bas htio imati lookup table kao sto zeli alankish ali sam skuzio da nakon što se spari početni niz znakova više ne provjerava. e sad jel se to može negdje namjestiti da provjeri cijeli niz znakova ili nema te mogucnosti?

inace ovakav konkretan slučaj najčešće mijenjam sa običnim edit-find-replace. ali htio bih nesto nauciti za ubuduce kad nemam takve slučajeve da se jedan unos mijenja u drugi sa konstantno istim prefiksom nego ima više varijacija i pomaže samo lookup table.

sasa pet 18.5.2012 12:48
Ezio kaže...
sasa kaže...

probaj ovu funkciju:

=REPLACE(LEFT(A1;2);1;2;"XYZ")&MID(A1;3;LEN(A1)-2)

 

a tu je i slika da vidiš kako to meni izgleda.

 

ali to nije isto kao kad se koristi lookup table? ja bih bas htio imati lookup table kao sto zeli alankish ali sam skuzio da nakon što se spari početni niz znakova više ne provjerava. e sad jel se to može negdje namjestiti da provjeri cijeli niz znakova ili nema te mogucnosti?

inace ovakav konkretan slučaj najčešće mijenjam sa običnim edit-find-replace. ali htio bih nesto nauciti za ubuduce kad nemam takve slučajeve da se jedan unos mijenja u drugi sa konstantno istim prefiksom nego ima više varijacija i pomaže samo lookup table.

daj mi par redaka tablice pošalji na mail da mi je lakše na pravoj tablici nešto složiti. sigurno mogu riješiti.. ;)

Ezio pet 18.5.2012 13:20
sasa kaže...
Ezio kaže...
sasa kaže...

probaj ovu funkciju:

=REPLACE(LEFT(A1;2);1;2;"XYZ")&MID(A1;3;LEN(A1)-2)

 

a tu je i slika da vidiš kako to meni izgleda.

 

ali to nije isto kao kad se koristi lookup table? ja bih bas htio imati lookup table kao sto zeli alankish ali sam skuzio da nakon što se spari početni niz znakova više ne provjerava. e sad jel se to može negdje namjestiti da provjeri cijeli niz znakova ili nema te mogucnosti?

inace ovakav konkretan slučaj najčešće mijenjam sa običnim edit-find-replace. ali htio bih nesto nauciti za ubuduce kad nemam takve slučajeve da se jedan unos mijenja u drugi sa konstantno istim prefiksom nego ima više varijacija i pomaže samo lookup table.

daj mi par redaka tablice pošalji na mail da mi je lakše na pravoj tablici nešto složiti. sigurno mogu riješiti.. ;)

ma neću te gnjaviti kad nije to nešto što mi trenutno treba nego me samo zanima kako radi.

alankish uto 22.5.2012 12:24

Ovo radi. Drugo pitanje je ID mi je u obliku _x_x___x , znaci od brojeva koji su odvojeni razmakom, odnosno znak _ ovdje da bude slikovito predstavlja razmak. Bitno mi je da VLOOKUP prepoznaje u bilo kojem obliku uneseni ID, odnosno x_x_x. Pokušao sam sa TRIM funkcijom ali ne polučuje željeni rezultat.

alankish sri 23.5.2012 18:03

Strimao sam ID-ove tako da su u obliku x_x_x, a i bolje da su razmaci tako da ne dođe do zabune, jer mi prve dvije znamenke označavaju grupni identifikator.

Ono što sad pokušavam je sljedeće, prvo da provjeri ID, ako je krivi da u čeliju ispiše grešku i to radi super. Sljedi KOD:

 

=IF(ISNA(VLOOKUP(B11;LV!A2:D1025;2;FALSE));"Molimo unesite točan pozicijski broj";VLOOKUP(B11;LV!A2:D1025;2;FALSE))

 

 

Sad bi htio da u slučaju da je čelija prazna ne piše ništa, jer sam formulu iskopirao u sve redove, pa mi onda za prazne ID-ove piše "Molimo unesite točan pozicijski broj". To sam shvatio da mogu sa funkcijom ISBLANK, ali ovo nestanje funkcija u Excelu mi baš neide, pa ako je netko voljan pomoći, bio bih zahvalan.

alankish sri 23.5.2012 18:10
sasa kaže...

samo mala optimizacijska napomena. možeš koristiti funkciju ISNA umjesto ISERROR, jer je ISNA baš za VLOOKUP (VLOOKUP vraća isključivo NA grešku ukoliko nešto ne funkcionira). i lookup podaci mogu biti bilo gdje, ne samo u istom folderu, ali se onda mora paziti na to da se upiše cijela putanja do datoteke.

Hm, slazem se sa ovim i upotrijebio sam ISNA funkciju, da li  to vrijedi samo za Value not avaliable, #N/A grešku? Jer ja pokušavam uloviti i #N/A grešku, ali i praznu celiju sa ISBLANK funcijom.

sasa pet 25.5.2012 10:17

ako želiš sa IF nešto ispisati u ćeliju onda koristiš (kao što znaš):

=if(uvjet;"nešto";"nešto drugo")

 

ako ne želiš imati ovaj "nešto" onda samo staviš navodnike ""

=if(uvjet;"";"nešto drugo")

 

ok, ovo onda nije skroz prazna ćelija, ali barem nema ništa vidljivo unutra. ako probaš provjeriti sa isblank dobiti češ false.

jedino kroz custom funkciju možeš napraviti neku funkciju koja ostavlja praznu ćeliju (trebaš VBA).

javi ako trebaš pomoć.

alankish pet 25.5.2012 10:45
sasa kaže...

ako želiš sa IF nešto ispisati u ćeliju onda koristiš (kao što znaš):

=if(uvjet;"nešto";"nešto drugo")

 

ako ne želiš imati ovaj "nešto" onda samo staviš navodnike ""

=if(uvjet;"";"nešto drugo")

 

ok, ovo onda nije skroz prazna ćelija, ali barem nema ništa vidljivo unutra. ako probaš provjeriti sa isblank dobiti češ false.

jedino kroz custom funkciju možeš napraviti neku funkciju koja ostavlja praznu ćeliju (trebaš VBA).

javi ako trebaš pomoć.

Brijem da mogu samo s ugrađenim funkcijama riješit taj problem, jer nisam doma sa VBA. Sadržaj čelije je prazan, odnosno nutra se nalazi samo formula, a trenutno bez upisanog ID-a mi lovi N/A error.