[EXCEL] celinhoud = bestandsnaam zonder extentie [.xlsx]

Pagina: 1
Acties:
  • 8.139 views

Vraag


  • BUR
  • Registratie: November 2008
  • Laatst online: 10-05 09:42

BUR

...aan het typen

Topicstarter
De titel zegt het eigenlijk al :

Ik zou graag willen dat de celinhoud gelijk is aan de naam van het bestand zònder extensie.

WE hebben het voor elkaar!!!

Bij het onderdeel LINKS moet i.p.v. -1(één karakter erafhalen, was namelijk de haak ] ) op -6 staan. En dan krijg je i.p.v. van .xlsx geen extensie meer!! Voorwaarde is dat de extensie dus vier karakters heeft. Tevens is een bug geplet waardoor bij het openen van meerdere excelfiles er van 1 file de bestandsnaam weergegeven in alle excelfiles. Dit is opgelost door aan een cel te referenen (in dit geval A1)

Het eindresultaat (voor Nederlandse Excel):

=VERVANGEN(LINKS(CEL("bestandsnaam";A1);VIND.SPEC("]";CEL("bestandsnaam";A1))-6);1;VIND.SPEC("[";CEL("bestandsnaam";A1));"")

The end result (voor Engelse Excel):

=REPLACE(LEFT(CELL("filename";A1);FIND("]";CELL("filename";A1))-6);1;FIND("[";CELL("filename";A1));"")

In Excel 2016 (NL) heb ik met de volgende formule de bestandsnaam mét extensie in een de cel waar deze formule in staat.

=VERVANGEN(LINKS(CEL("filename");VIND.SPEC("]";CEL("filename"))-1);1;VIND.SPEC("[";CEL("filename"));"")

Heeft iemand een idee hoe deze formule aan te passen is?


@Raznov Superrr bedankt voor het meedenken! Door jouw formule kwam ik op het idee. d:)b

@joostnl Bedankt voor het initiëren van pletten van de bug "meerdere excelfiles er van 1 file de bestandsnaam wordt weergegeven in alle excelfiles"

@Reptile209 Bedankt voor het meedenken!

@F_J_K Bedankt voor het meedenken!

Grtz,
BUR

[ Voor 58% gewijzigd door BUR op 02-08-2018 13:57 . Reden: Typo's ]

Beste antwoord (via BUR op 02-08-2018 13:34)


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 01:41

Reptile209

- gers -

BUR schreef op donderdag 2 augustus 2018 @ 12:20:
Ik heb net dezelfde conclusie getrokken. Helaas nu even geen tijd om verder te kijken.

Het was mij uiteindelijk wel opgevallen dat de benaming uiteindelijk blijft 'hangen". Echter heb ik maar een file open staan. Dus ben er niet verder in gedoken.(Voorgaande verhaal was al een hele zoektocht)

Het zou wel top zijn als deze "bug" geplet kan worden :+
Ik heb ook gezien dat zonder celverwijzing inderdaad de actieve bestandsnaam wordt gebruikt. Maar zodra je er een celverwijzing binnen je workbook in zet, houdt hij netjes de waarde.

Ik heb heel even zitten prutsen hier (Excel 2016). Als ik de Nederlandse formule van hierboven probeer, alleen vertaald naar het Engels, dan werkt het als een zonnetje:
code:
1
=REPLACE(LEFT(CELL("filename");FIND("]";CELL("filename"))-6);1;FIND("[";CELL("filename"));"")

of zelfs
code:
1
=REPLACE(LEFT(CELL("filename";A1);FIND("]";CELL("filename";A1))-6);1;FIND("[";CELL("filename";A1));"")

Als het bij jullie niet werkt, denk ik dat het toch aan het scheidingsteken (, of ;) ligt, of aan de taal (Engelse/Nederlandse formulenamen, waarbij "filename" voor de Nederlandse formule "bestandsnaam" moet zijn).
joostnl schreef op donderdag 2 augustus 2018 @ 12:38:
Deze oplossing krijg ik uberhaupt niet werkend met de INDIRECT functie:

Hij blijft maar aangeven dat: "bestandsnaam",INDIRECT
Niet geldig is

https://answers.microsoft...58-4afb-b980-28d1a3a33cfe
Waarom zou je hier met indirect() willen werken? Hij moet gewoon een verwijzing naar een willekeurige cel in je werkblad hebben. Boeit niet welke, of wat daar in staat.

[ Voor 53% gewijzigd door Reptile209 op 02-08-2018 13:13 ]

Zo scherp als een voetbal!

Alle reacties


  • Raznov
  • Registratie: December 2006
  • Laatst online: 23-05 13:43
Heb je meerdere punten in de bestandsnaam? Er staat waarschijnlijk 1 punt voor je extensie, maar bevatten de bestandsnamen nog meer punten of niet?

Strava & Untappd - Do not combine!


  • BUR
  • Registratie: November 2008
  • Laatst online: 10-05 09:42

BUR

...aan het typen

Topicstarter
tnx voor de snelle reactie!

Er zitten geen punten in de bestandsnaam.

  • Raznov
  • Registratie: December 2006
  • Laatst online: 23-05 13:43
Sorry maar ik heb geen NL excel in gebruik en heb ook geen idee wat de NL termen zijn, maar dit zou moeten werken in de EN versie (heb deze formule ooit eens zelf gemaakt toen). =MID(B2;1;SEARCH(".";B2;1)-1)
Waarbij B2 je cel is met je filename (incl extensie).
";" is mijn seperator.

Edit:
=DEEL(B2,1,VIND.SPEC(".",B2,1)-1)
Zou moeten werken volgens de Excel overzichtjes.

[ Voor 14% gewijzigd door Raznov op 21-12-2017 11:11 ]

Strava & Untappd - Do not combine!


  • BUR
  • Registratie: November 2008
  • Laatst online: 10-05 09:42

BUR

...aan het typen

Topicstarter
Bedankt voor je input, het is helaas een methode waarbij ik meer cellen nodig heb. Bedankt voor je snelle reactie. Ik heb nu i.i.g. iets om toe te passen.

Ik zou echter toch liever een formule in één cel willen hebben. :-)
Zijn er nog andere die het in een cel kunnen formuleren?

P.S. ik heb een werkende versie van jouw formule in NL versie omgebouwd:

=DEEL(B2;1;VIND.SPEC(".";B2;1)-1)

reply voor hierboven: Ah je had hem ook al omgebouwd! ;-)

[ Voor 7% gewijzigd door BUR op 21-12-2017 11:28 . Reden: C2 naar B2 teruggezet. ]


  • Raznov
  • Registratie: December 2006
  • Laatst online: 23-05 13:43
Hoe bedoel je in 1 cel willen hebben? Je laat deze in de cel naast je datacell lopen, dan krijg je het resultaat te zien? Hoe ziet je data er nu uit?

Strava & Untappd - Do not combine!


  • BUR
  • Registratie: November 2008
  • Laatst online: 10-05 09:42

BUR

...aan het typen

Topicstarter
De formule en uitkomst in dezelfde cel zetten. Voordeel: dan ben je niet afhankelijk van andere cellen om een uitkomst te krijgen.
Als er geknutseld wordt in de Excel file (rijen ertussen kolommen ertussen etc..) blijft het gewoon werken.

P.S. Ik heb jouw formule gebruikt en de extractie formule in een cel gezet in een hidden kolom.

[ Voor 17% gewijzigd door BUR op 21-12-2017 12:19 ]


  • BUR
  • Registratie: November 2008
  • Laatst online: 10-05 09:42

BUR

...aan het typen

Topicstarter
Opgelost!!!

Bij het Onderdeel links moet i.p.v. -1(één karakter erafhalen, was namelijk de haak ] ) op -6 staan. En dan krijg je i.p.v. van .xlsx geen extentie meer!! Voorwaarde is dat de extentie dus vier karakters heeft.

The end result:

=VERVANGEN(LINKS(CEL("filename");VIND.SPEC("]";CEL("filename"))-6);1;VIND.SPEC("[";CEL("filename"));"")

Acties:
  • 0 Henk 'm!

  • joostnl
  • Registratie: Januari 2010
  • Laatst online: 14-06 21:32
Bedankt in principe werkt jouw oplossing!
Echter als ik meerdere excel bestanden open veranderd bij alleen constant de bestandsnaam in alle bestanden.
Waarschijnlijk omdat hij naar de actuele bestandsnaam die actief is kijkt.
Dit lijk je te kunnen oplossen door te verwijzen naar een cel in je werkblad alleen dit begrijp ik niet.

Als ik "filename",A1 of "bestandsnaam",A1 doet word de formule niet geaccepteerd.
Moet er een speciale waarde in A1 staan?

Engelse uitleg:
https://answers.microsoft...60-419c-bb86-660c7ce43c9d

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 01:41

Reptile209

- gers -

Nee, het maakt niet uit wat er in A1 staat. Heb je wel het juiste scheidingsteken tussen "filename" en A1 staan (komma of puntkomma)? Welk resultaat krijg je precies als je formule "niet [wordt] geaccepteerd"? #VALUE, #NAME, ??

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

  • joostnl
  • Registratie: Januari 2010
  • Laatst online: 14-06 21:32
Bedankt voor je snelle reactie.

Hij laat geen duidelijke fout code zien: resultaat = de hele formule

popup: 'De formule die u hebt geypt bevat een fout.' klik help,

Volgende geprobeerd:
=VERVANGEN(LINKS(CEL("filename";A1);VIND.SPEC("]";CEL("filename";A1))-5);1;VIND.SPEC("[";CEL("filename";A1));"")

of

=VERVANGEN(LINKS(CEL("filename",A1);VIND.SPEC("]";CEL("filename",A1))-5);1;VIND.SPEC("[";CEL("filename",A1));"")

Mij probleem is dus dat naar de bestandsnaam moet kijken maar niet naar de 'actieve bestandsnaam'

Bedankt alvast
Reptile209 schreef op donderdag 2 augustus 2018 @ 11:58:
Nee, het maakt niet uit wat er in A1 staat. Heb je wel het juiste scheidingsteken tussen "filename" en A1 staan (komma of puntkomma)? Welk resultaat krijg je precies als je formule "niet [wordt] geaccepteerd"? #VALUE, #NAME, ??

[ Voor 3% gewijzigd door joostnl op 02-08-2018 12:12 ]


Acties:
  • 0 Henk 'm!

  • BUR
  • Registratie: November 2008
  • Laatst online: 10-05 09:42

BUR

...aan het typen

Topicstarter
Ik heb net dezelfde conclusie getrokken. Helaas nu even geen tijd om verder te kijken.

Het was mij uiteindelijk wel opgevallen dat de benaming uiteindelijk blijft 'hangen". Echter heb ik maar een file open staan. Dus ben er niet verder in gedoken.(Voorgaande verhaal was al een hele zoektocht)

Het zou wel top zijn als deze "bug" geplet kan worden :+

[ Voor 12% gewijzigd door BUR op 02-08-2018 12:21 ]


Acties:
  • 0 Henk 'm!

  • joostnl
  • Registratie: Januari 2010
  • Laatst online: 14-06 21:32
Ok bedankt hopelijk weet reptile meer. ik denk dat het er mee te maken heeft dat de engelse oplossing in excel 2007 schijnt te werken. En misschien dus niet 2016.

Acties:
  • 0 Henk 'm!

  • joostnl
  • Registratie: Januari 2010
  • Laatst online: 14-06 21:32
Deze oplossing krijg ik uberhaupt niet werkend met de INDIRECT functie:

Hij blijft maar aangeven dat: "bestandsnaam",INDIRECT
Niet geldig is

https://answers.microsoft...58-4afb-b980-28d1a3a33cfe

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 01:41

Reptile209

- gers -

BUR schreef op donderdag 2 augustus 2018 @ 12:20:
Ik heb net dezelfde conclusie getrokken. Helaas nu even geen tijd om verder te kijken.

Het was mij uiteindelijk wel opgevallen dat de benaming uiteindelijk blijft 'hangen". Echter heb ik maar een file open staan. Dus ben er niet verder in gedoken.(Voorgaande verhaal was al een hele zoektocht)

Het zou wel top zijn als deze "bug" geplet kan worden :+
Ik heb ook gezien dat zonder celverwijzing inderdaad de actieve bestandsnaam wordt gebruikt. Maar zodra je er een celverwijzing binnen je workbook in zet, houdt hij netjes de waarde.

Ik heb heel even zitten prutsen hier (Excel 2016). Als ik de Nederlandse formule van hierboven probeer, alleen vertaald naar het Engels, dan werkt het als een zonnetje:
code:
1
=REPLACE(LEFT(CELL("filename");FIND("]";CELL("filename"))-6);1;FIND("[";CELL("filename"));"")

of zelfs
code:
1
=REPLACE(LEFT(CELL("filename";A1);FIND("]";CELL("filename";A1))-6);1;FIND("[";CELL("filename";A1));"")

Als het bij jullie niet werkt, denk ik dat het toch aan het scheidingsteken (, of ;) ligt, of aan de taal (Engelse/Nederlandse formulenamen, waarbij "filename" voor de Nederlandse formule "bestandsnaam" moet zijn).
joostnl schreef op donderdag 2 augustus 2018 @ 12:38:
Deze oplossing krijg ik uberhaupt niet werkend met de INDIRECT functie:

Hij blijft maar aangeven dat: "bestandsnaam",INDIRECT
Niet geldig is

https://answers.microsoft...58-4afb-b980-28d1a3a33cfe
Waarom zou je hier met indirect() willen werken? Hij moet gewoon een verwijzing naar een willekeurige cel in je werkblad hebben. Boeit niet welke, of wat daar in staat.

[ Voor 53% gewijzigd door Reptile209 op 02-08-2018 13:13 ]

Zo scherp als een voetbal!


Acties:
  • +1 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

=VERVANGEN(LINKS(CEL("filename";A1);VIND.SPEC("]";CEL("filename";A1))-5);1;VIND.SPEC("[";CEL("filename";A1));"")

werkt hier prima. Nou ja, bij -6 ipv -5 en natuurlijk alleen nadat het bestand een filename heeft, dus pas na de eerste keer opslaan. Tot die tijd volgt #Waarde!

Als het niet werkt dan zou ik idd kijken naar de taalinstellingen kijken (komma vs puntkomma / filename).

Als het niet lukt, probeer de verschillende deelfuncties een voor een op een losse regel, om te troubleshooten.

Edit: ik heb een NL Office op een EN Windows en NL taalinstellingen, vandaar dat het bij mij wel werkt.

[ Voor 10% gewijzigd door F_J_K op 02-08-2018 13:20 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

F_J_K schreef op donderdag 2 augustus 2018 @ 13:16:
=VERVANGEN(LINKS(CEL("filename";A1);VIND.SPEC("]";CEL("filename";A1))-5);1;VIND.SPEC("[";CEL("filename";A1));"")

werkt hier prima.
Dan heb je nog mazzel want officieel is het NL: CEL("bestandsnaam") of US: CELL("filename")

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Lustucru schreef op donderdag 2 augustus 2018 @ 13:19:
[...]
Dan heb je nog mazzel want officieel is het NL: CEL("bestandsnaam") of US: CELL("filename")
Zie de edit die ik net deed :P

Maar taalinstellingen dus.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • BUR
  • Registratie: November 2008
  • Laatst online: 10-05 09:42

BUR

...aan het typen

Topicstarter
F_J_K schreef op donderdag 2 augustus 2018 @ 13:16:
=VERVANGEN(LINKS(CEL("filename";A1);VIND.SPEC("]";CEL("filename";A1))-5);1;VIND.SPEC("[";CEL("filename";A1));"")

werkt hier prima. Nou ja, bij -6 ipv -5 en natuurlijk alleen nadat het bestand een filename heeft, dus pas na de eerste keer opslaan. Tot die tijd volgt #Waarde!

Als het niet werkt dan zou ik idd kijken naar de taalinstellingen kijken (komma vs puntkomma / filename).

Als het niet lukt, probeer de verschillende deelfuncties een voor een op een losse regel, om te troubleshooten.

Edit: ik heb een NL Office op een EN Windows en NL taalinstellingen, vandaar dat het bij mij wel werkt.
The end result, alles in een taal en dan werkt ie als een tierelier:
=VERVANGEN(LINKS(CEL("bestandsnaam";A1);VIND.SPEC("]";CEL("bestandsnaam";A1))-6);1;VIND.SPEC("[";CEL("bestandsnaam";A1));"")

Net getest en dit werkt indien er meerdere excel bestanden open staan (Office 2016). Alleen heb ik het nog niet getest met een inhoud in A1. :/

[ Voor 7% gewijzigd door BUR op 02-08-2018 13:39 ]


Acties:
  • 0 Henk 'm!

  • joostnl
  • Registratie: Januari 2010
  • Laatst online: 14-06 21:32
Ik bedank u allen het werkt fantastisch!
(ik had nog een offtopic noob vraag)

Eigenlijk wil ik mijn werkblad weergeven
C17 230718-1
C 16 23-07-2018

Dit moet ik nu in een tussenstap eerst in C15 wegschrijven.
Kan ik de formule: =LINKS(C17;LENGTE(C17)-2) direct in de formule van stap 3 plakken?
Dan kan ik stap 2 c15 overslaan.


Stap 1: Bestandsnaam achterhalen (word in cel C17 weergegeven)

Uitkomst geeft: 230718-1

=VERVANGEN(LINKS(CEL("bestandsnaam";A1);VIND.SPEC("]";CEL("bestandsnaam";A1))-6);1;VIND.SPEC("[";CEL("bestandsnaam";A1));"")


Stap 2: Uitkomst, tekens : -1 moet verdwijnen om deze uitkomst om te zetten naar een datum

Uitkomst: 230718 (word in cel C15 weergegeven)

=LINKS(C17;LENGTE(C17)-2)


Stap 3: Uitkomst omzetten naar datum

Uitkomst: 23-07-2018 weggeschreven in cel C16

=DATUM(WAARDE(RECHTS(C15;2))+2000;WAARDE(DEEL(C15;3;2));WAARDE(DEEL(C15;1;2)))

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

joostnl schreef op donderdag 2 augustus 2018 @ 14:36:
Ik bedank u allen het werkt fantastisch!
(ik had nog een offtopic noob vraag)
Nou ga ik er toch een stokje voor steken. Ik vond het al bedenkelijk dat je een oud topic kickte, maar dat lag iig nog in de lijn. Maar je gaat niet andermans topic omvormen tot het grote joost.nl kleine vraagjes topic.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1

Dit topic is gesloten.