Toon posts:

[Excel] probleem voor gevorderde... denk ik

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor een wat duidelijkere uitleg heb ik het excel bestand bijgevoegd
edit:
(bestand op nieuw ge-upload na het goed beeindigen van dit topic (100KB))


Ik zal eerst proberen uit te leggen wat en waarom ik dit wil.

Mijn DVD collectie hield ik tot nu toe altijd bij in excel. In dit bestand stond per rij; Titel, US Release en Genre. Deze gegevens haalde ik dan door wat copy paste werk uit IMDB.com.
Ook maakte ik covers voor mijn CD hoesje (DVD hoesjes nemen mij te veel ruimte in) met CDRlabel, waar ik ook weer wat gegevens van IMDB.com op zetten.

Dit ging vrij tijdverspillend voelen na een hoesje of 50, dus ben op zoek naar wat anders. Ik heb aardig wat dingen geprobeerd, hier kwam Movie Collector toch wel als beste uit, maar nog niet naar mijn zin.

Vandaag ben ik dus maar begonnen met wat excel werk.
Ik heb al mijn DVD's op http://www.movie-index.net/list.php?Active=MW& gezet
(deze site haalt door middel van php de gegevens van IMDB)
Dan haal ik met excel via web query deze tabel met volledige gegevens binnen.

In excel heb ik de maten van een cd hoesje gezet, en hier wil ik dan de gegevens uit sheet "Query" voor gebruiken.
Dit is zoals je kunt zien wel gelukt maar nu wil ik niet elke keer die formule voor elk veld gaan veranderen. Het liefst zou ik op willen geven om welk film nr. het gaat en dat de formules dan automatisch aan gepast worden.

Met excel is alles mogelijk, dus dit ook wel.

volgende vraag waarschijnlijk wat simpeler
Hij geeft nu alle genres die op IMDB staan geschijden door komma's, met welke functie(s) kan ik alle gegevens achter een eventuele tweede komma weg laten.
Zo zou ik dus maximaal 2 genres over houden.

Als jij hier enigzins mee kan helpen of op een hele andere manier toch op het zelfde resultaat weet te komen... spreek!

[ Voor 10% gewijzigd door Verwijderd op 07-12-2003 13:52 ]


  • -Marshal-
  • Registratie: Maart 2002
  • Laatst online: 03-11-2024
Verwijderd schreef op 19 oktober 2003 @ 16:16:In excel heb ik de maten van een cd hoesje gezet, en hier wil ik dan de gegevens uit sheet "Query" voor gebruiken.
Dit is zoals je kunt zien wel gelukt maar nu wil ik niet elke keer die formule voor elk veld gaan veranderen. Het liefst zou ik op willen geven om welk film nr. het gaat en dat de formules dan automatisch aan gepast worden.
Als ik het goed begrijp wil je door alleen het filmnummer te veranderen alle informatie op CD hoesjes veranderen.

Dit kan door gebruik te maken van de "vlookup formule". Voor de plotoutline zou je dan deze forumle kunnen gebruiken
code:
1
=VLOOKUP(P4;Query!A:H;8)

In cel P4 vul je dan het nummer in van de film waarna deze in de kolommen A t/m H op de regel waar het getal 40 staat de waarde van kolom nummer 8 weergeeft.

link naar aangepast bestand

[ Voor 9% gewijzigd door -Marshal- op 19-10-2003 16:50 ]

Distributed.net, the only reason my computer is on right now !


Verwijderd

Topicstarter
Hey, bedankt.
Blijkbaar toch niet zo moeilijk als ik dacht!

En die tweede vraag, dingen weg laten na de 2de komma is dat enigzins mogelijk?

Verwijderd

Topicstarter
Nu ik overal die formule in gezet heb, kom ik een klein probleempje tegen.
Ik heb Custom number format code "text: "@ gebruikt om voor de content van de cell genre, cast en directed by neer te zetten. nu geeft hij daar de formule weer ipv de opgezochte waarde. De cellen met daarin een cijfer zijn wel goed omdat ik daar "text: "# gebruikt heb.

wat kan ik ipv @ gebruiken om toch de opgezochte text weer te geven?

[ Voor 5% gewijzigd door Verwijderd op 19-10-2003 17:08 ]


  • -Marshal-
  • Registratie: Maart 2002
  • Laatst online: 03-11-2024
Verwijderd schreef op 19 October 2003 @ 17:07:
Nu ik overal die formule in gezet heb, kom ik een klein probleempje tegen.
Ik heb Custom number format code "text: "@ gebruikt om voor de content van de cell genre, cast en directed by neer te zetten. nu geeft hij daar de formule weer ipv de opgezochte waarde. De cellen met daarin een cijfer zijn wel goed omdat ik daar "text: "# gebruikt heb.

wat kan ik ipv @ gebruiken om toch de opgezochte text weer te geven?
Tja, dat was een lastige :)

Maar de oplossing die hier werkte was de formule nogmaals tussen haakjes te zetten.
code:
1
=(VLOOKUP(P4;Query!A:H;8))

Distributed.net, the only reason my computer is on right now !


  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
Om alles in A1 na de eerste puntkomma weg te halen gebruik je de combinatie van Left en Find, bijvoorbeeld =LEFT(A1;FIND(";";A1))

Nog een voorbeeldje, om alleen over te houden wat er voor de tweede komma in A2 staat gebruik je dit: =LEFT(A2;(FIND(",";A2;FIND(",";A2)+1)-1))

[ Voor 39% gewijzigd door Arnaud op 19-10-2003 17:56 . Reden: tweede voorbeeld toegevoegd ]


Verwijderd

Topicstarter
-Marshal- schreef op 19 October 2003 @ 17:31:
[...]

Tja, dat was een lastige :)

Maar de oplossing die hier werkte was de formule nogmaals tussen haakjes te zetten.
code:
1
=(VLOOKUP(P4;Query!A:H;8))
Werkte dit bij jouw wel?

bij mij in ieder geval niet (excel 2002)

[ Voor 67% gewijzigd door Verwijderd op 19-10-2003 17:40 ]


  • -Marshal-
  • Registratie: Maart 2002
  • Laatst online: 03-11-2024
[b]Verwijderd schreef op 19 October 2003 @ 17:39
Werkte dit bij jouw wel?

bij mij in ieder geval niet (excel 2002)
Werkte bij mij toch ook niet :) Heb even wat zitten proberen, maar excel heeft blijkbaar wat eigenaardigheden.

Het lijkt alleen te werken wanneer de de hele cel leegmaakt, formatting weer op general zet. Formule maakt en daarna weer de "Cast:" @ format toevoegd.

Distributed.net, the only reason my computer is on right now !


Verwijderd

Topicstarter
Haha,

Ja, blijkbaar een bugje in excel.

Nogmaals bedankt.

Verwijderd

Topicstarter
Arnaud schreef op 19 oktober 2003 @ 17:37:
Om alles in A1 na de eerste puntkomma weg te halen gebruik je de combinatie van Left en Find, bijvoorbeeld =LEFT(A1;FIND(";";A1))

Nog een voorbeeldje, om alleen over te houden wat er voor de tweede komma in A2 staat gebruik je dit: =LEFT(A2;(FIND(",";A2;FIND(",";A2)+1)-1))
Ik zie dat je je post aangepast hebt, voor je aanpassing kreeg ik het niet werkend.
Nu wel, ook jij bedankt!

Ga nu even proberen of deze formule samen in een cell gaat met =VLOOKUP(P1;Query!A:H;4)
anders moet ik hem ergens anders zetten en dan terug copieeren


Ja dus, het werkt.

=LEFT(VLOOKUP(P1;Query!A:H;4);(FIND(",";VLOOKUP(P1;Query!A:H;4);FIND(",";VLOOKUP(P1;Query!A:H;4))+1)-1))

Wordt een flinke formule :D

[ Voor 14% gewijzigd door Verwijderd op 19-10-2003 18:06 ]


Verwijderd

Topicstarter
=LEFT(A2;(FIND(",";A2;FIND(",";A2)+1)-1))

Werkt goed, maar als er geen 2 komma's staan gaat hij wel de fout in.
Ik wil best zelf wat aan die formule knutselen, maar voorlopig snap ik hem niet helemaal.
Misschien dat je hier ook gelijk wat uitleg over geeft?

[ Voor 15% gewijzigd door Verwijderd op 19-10-2003 18:55 ]


  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
Stel dat je in A1 de tekst "abra,ca,da,bra" hebt staan en dat je alleen de tekst "abra,ca" over wilt houden omdat alles vanaf de tweede comma moet vervallen.
De functie =LEFT(A1;7) oftewel =LEFT(A1;8-1) zou in dit geval het goede resultaat opleveren omdat de tweede komma het achtste teken is van "abra,ca,da,bra".
Om nu de 8 te kunnen vervangen door de tweede komma moeten we eerst weten waar de eerste komma staat.
De functie =FIND(",";A1) geeft als resultaat 5 omdat de eerste komma het vijfde teken is van "abra,ca,da,bra".
De functie =FIND(",";A1;6) oftewel =FIND(",";A1;5+1) geeft als resultaat 8 omdat de eerste komma, vanaf het zesde teken, het achtste teken is van "abra,ca,da,bra".

Om nu al deze functies in elkaar te schijven doe je het volgende:
De lokatie van de eerste komma vindt je met =FIND(",";A1)
De lokatie van de tweede komma vindt je met =FIND(",";A1;FIND(",";A1)+1)
Alle tekst die voor de lokatie van de tweede komma staat vindt je met =LEFT(A1;FIND(",";A1;FIND(",";A1)+1)-1)

Het probleem met FIND is wat er gebeurd als er geen teken kan worden gevonden. Stel dat je de formule =FIND(";";A1) of =FIND(",";A1;100) gebruikt. De eerste formule levert een Error (#VALUE!) op omdat er geen puntkomma kan worden gevonden in "abracadabra". de tweede formule levert dezelfde Error op omdat er na het honderdste teken geen komma kan worden gevonden. Gelukkig kun je met ISERROR() kijken of er een fout is opgetreden. Met IF() kun je dan afhankelijk van het wel of niet optreden van een fout een andere uitkomst laten zien. In jouw geval betekent een opgetreden fout gewoon dat er geen tweede komma in zit en dat dus altijd de hele tekst mag worden weergegeven.

In jouw geval zou dit leiden tot de formule =IF(ISERROR(LEFT(A1;FIND(",";A1;FIND(",";A1)+1)-1));A1;LEFT(A1;FIND(",";A1;FIND(",";A1)+1)-1)) die je versimpelt zou kunnen lezen als "Als er een fout optreedt bij het weergeven van alle tekst tot de tweede komma laat ik A1 zien en anders laat ik alle tekst tot de tweede komma zien".

Al met al een behoorlijk uitgebreide formule, maar zeker geen ingewikkelde.

Verwijderd

Topicstarter
Iedereen bedankt.

Het bestand werkt nu volledig naar mijn eerste verwachtingen.

Ik heb het komplete bestand overnieuw op mijn provider ruimte gezet, voor als iemand in de toekomst dit topic nog terug zou lezen.

DVDcover.zip
Pagina: 1