Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Sharepoint 2003] - Karakters tellen in string

Pagina: 1
Acties:

Verwijderd

Topicstarter
In een sharepoint lijst staat in 1 kolom een code met 4 of 5 keer een *. Ik moet nu bepalen hoe vaak deze * voorkomt, dus middels een berekende kolom.
In de Sharepoint-functies bij berekende kolommen kan ik hier helaas niets voor vinden, er is geen count-functie. Ook is er geen substitutefunctie; ik kan bijv. niet de lengte van de originele string vergelijken met die van de string waarbij de sterretjes weggesubstitueerd zijn.

Op Google al veel gezocht op "count string occurences", "substitute strings" (met als toevoegen (SPS or Sharepoint) 2003), maar zonder enig resultaat.
Wie o wie heeft de oplossing voor dit probleem?

Een lijst met mogelijke functies

[ Voor 7% gewijzigd door Verwijderd op 18-03-2009 13:35 ]


  • Alternativ
  • Registratie: Juli 2003
  • Laatst online: 26-11 20:33

Alternativ

4 8 15 16 23 42

Simpele zoektocht op basis van je topictitel:

http://www.saltro.nl/_vti_bin/help/1043/sps/html/llen.htm

LENGTE geeft als resultaat het aantal tekens in een tekenreeks.

alternativ


Verwijderd

Topicstarter
Alternativ schreef op woensdag 18 maart 2009 @ 13:42:
Simpele zoektocht op basis van je topictitel:

http://www.saltro.nl/_vti_bin/help/1043/sps/html/llen.htm

LENGTE geeft als resultaat het aantal tekens in een tekenreeks.
Ja, het totaal aantal tekens, maar ik wil alleen het aantal sterretjes in de string.

Dus STRCOUNT("A1*A2*A3*A4*A5", "*") = 4
Ik wil dus die 4 bepalen.

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
lengte alleen is natuurlijk niet genoeg. Het gaat om een count van een specifiek karakter. Je zou natuurlijk het volgende kunnen doen (erg ranzig):
code:
1
=LEN(A1)-LEN(SUBSTITUTE(A1,"*",""))

Ik weet alleen niet wat de Nederlandse namen zijn voor LEN en SUBSTITUTE.

Edit: LEN wordt natuurlijk LENGTE.

[ Voor 6% gewijzigd door KabouterSuper op 18-03-2009 14:16 ]

When life gives you lemons, start a battery factory


  • Alternativ
  • Registratie: Juli 2003
  • Laatst online: 26-11 20:33

Alternativ

4 8 15 16 23 42

=LEN(A1)-LEN(SUBSTITUTE(A1,"*",""))

http://www.saltro.nl/_vti...043/sps/html/lreplace.htm

[ Voor 91% gewijzigd door Alternativ op 18-03-2009 14:02 ]

alternativ


Verwijderd

Topicstarter
KabouterSuper schreef op woensdag 18 maart 2009 @ 13:59:
lengte alleen is natuurlijk niet genoeg. Het gaat om een count van een specifiek karakter. Je zou natuurlijk het volgende kunnen doen (erg ranzig):
code:
1
=LEN(A1)-LEN(SUBSTITUTE(A1,"*",""))

Ik weet alleen niet wat de Nederlandse namen zijn voor LEN en SUBSTITUTE.

Edit: LEN wordt natuurlijk LENGTE.
Zoals ik al zei, er is geen substitute functie.

@Alternativ: VERVANGEN vervangt een deel van een tekenreeks door een andere tekenreeks, op basis van het aantal tekens dat u opgeeft.
Oftewel, vervang bijv. de eerste 10 tekens door een andere string.

VERVANGEN is dus wat anders dan SUBSTITUEREN... De laatste functie is wel aanwezig in Excel, daarmee zou het ook wel lukken, maar in SPS is deze dus niet beschikbaar. Aan VERVANGEN heb ik niets.

8)7 Ik zal wel stom zijn, maar met deze functie-set is het niet mogelijk... Of heeft iemand een ingeving?

[ Voor 5% gewijzigd door Verwijderd op 18-03-2009 14:27 ]


  • Alternativ
  • Registratie: Juli 2003
  • Laatst online: 26-11 20:33

Alternativ

4 8 15 16 23 42

Verwijderd schreef op woensdag 18 maart 2009 @ 14:26:
[...]

Zoals ik al zei, er is geen substitute functie.

@Alternativ: VERVANGEN vervangt een deel van een tekenreeks door een andere tekenreeks, op basis van het aantal tekens dat u opgeeft.
Oftewel, vervang bijv. de eerste 10 tekens door een andere string.

VERVANGEN is dus wat anders dan SUBSTITUEREN... De laatste functie is wel aanwezig in Excel, daarmee zou het ook wel lukken, maar in SPS is deze dus niet beschikbaar. Aan VERVANGEN heb ik niets.

8)7 Ik zal wel stom zijn, maar met deze functie-set is het niet mogelijk... Of heeft iemand een ingeving?
Je bent natuurlijk vrij om te combineren.

http://www.saltro.nl/_vti_bin/help/1043/sps/html/lsearch.htm

=VERVANGEN([Kol3];VIND.SPEC([Kol3];[Kol2]);6;"bedrag")

alternativ


  • KabouterSuper
  • Registratie: September 2005
  • Niet online
SUBSTITUEREN al geprobeerd?

Edit: had je al geprobeerd zie ik.

[ Voor 45% gewijzigd door KabouterSuper op 18-03-2009 14:46 ]

When life gives you lemons, start a battery factory


Verwijderd

Topicstarter
Alternativ schreef op woensdag 18 maart 2009 @ 14:37:
[...]

Je bent natuurlijk vrij om te combineren.

http://www.saltro.nl/_vti_bin/help/1043/sps/html/lsearch.htm

=VERVANGEN([Kol3];VIND.SPEC([Kol3];[Kol2]);6;"bedrag")
Klopt, en dan dien ik dit recursief aan te roepen, want nu vervangt hij het maar 1x... Bovenstaande functie zal maar 1x de tekst "marge" opzoeken en dat vervangen door "bedrag".

VERVANGEN doet niets anders dan een opgegeven deel van de string te vervangen door een andere string, hij 'leest' de tekst niet.

Bedankt voor het meedenken, maar dit is de oplossing nog niet :(

@Kaboutersuper: Die is dus niet aanwezig in SPS idd...
Op Google vind ik ook alleen oplossingen voor strings met getallen, bijv. op het aantal komma's in "1, 2, 3" te tellen. Dat kan met de functie TEKST, die een getal kan omzetten in een string met een opgegeven formaat.
Daar heb ik ook niets aan, het gaat om codes met letters en cijfers gescheiden door een asterisk.

/Edit: met de oplossing van Alternativ moet het misschien wel lukken, want er staan maximaal 5 asterisks in. Dus 5x die functie erop los laten.
Het probleem is dat ik deze tel-functie in een andere berekende kolom moet gebruiken. Ik kan deze telfunctie niet in een aparte berekende kolom zetten, omdat ik dan tegen de limiet van 8 berekende kolommen aanloop... En de tel-functie mag niet te lang worden, want er mogen maximaal 1000 tekens in een berekende kolom (ongeveer)... :(

[ Voor 61% gewijzigd door Verwijderd op 18-03-2009 14:51 ]


  • Alternativ
  • Registratie: Juli 2003
  • Laatst online: 26-11 20:33

Alternativ

4 8 15 16 23 42

Tip probeer het eerst even in excel uit met de gelimiteerde set van functies. Ondertussen ben ik ook nog even aan het uitproberen :)

alternativ


Verwijderd

Topicstarter
Alternativ schreef op woensdag 18 maart 2009 @ 15:06:
[...]

Tip probeer het eerst even in excel uit met de gelimiteerde set van functies. Ondertussen ben ik ook nog even aan het uitproberen :)
Ga ik ook doen :)
Recursief gaat het ook niet werken. Om het 2e * te vervangen, moet ik beginnen bij de pos van het 1e *. Dat kan wel, maar dan wordt de formule superlang, bij de 3e moet ik de positie van de 2e weten die weer afhankelijk is van de 1e. :(

Thanks iig :)

[ Voor 8% gewijzigd door Verwijderd op 18-03-2009 15:10 ]


  • Alternativ
  • Registratie: Juli 2003
  • Laatst online: 26-11 20:33

Alternativ

4 8 15 16 23 42

Verwijderd schreef op woensdag 18 maart 2009 @ 15:10:
[...]

Ga ik ook doen :)
Recursief gaat het ook niet werken. Om het 2e * te vervangen, moet ik beginnen bij de pos van het 1e *. Dat kan wel, maar dan wordt de formule superlang, bij de 3e moet ik de positie van de 2e weten die weer afhankelijk is van de 1e. :(

Thanks iig :)
A1 lgwjfnlnljndefwf**nfenjfnejnf***
B1 27
Formule B1 =LEN(A1)-FINDB("f",A1) LEN = lengte, FINDB = vind.alles

Bij deze, volgens mij mag je in sps de * aanroepen met een ~ ervoor, zoiets meende ik te lezen.

alternativ


Verwijderd

Topicstarter
Alternativ schreef op woensdag 18 maart 2009 @ 15:14:
[...]


A1 lgwjfnlnljndefwf**nfenjfnejnf***
B1 27
Formule B1 =LEN(A1)-FINDB("f",A1) LEN = lengte, FINDB = vind.alles

Bij deze, volgens mij mag je in sps de * aanroepen met een ~ ervoor, zoiets meende ik te lezen.
Ik snap hem niet? VIND.ALLES zoekt het eerste voorkomen van een string in een tekst, niet het aantal voorkomens? VIND.ALLES("f", A1) is 5, omdat op de 5e positie een f staat.

Een voorbeeldstring: e16*2621/175*45673*12

Dus hier moet 3 uitkomen.
Mogelijke antwoord is altijd 3 of 4, er komen dus altijd 3 of 4 sterretjes in voor.

[ Voor 12% gewijzigd door Verwijderd op 18-03-2009 15:23 ]


  • Alternativ
  • Registratie: Juli 2003
  • Laatst online: 26-11 20:33

Alternativ

4 8 15 16 23 42

Verwijderd schreef op woensdag 18 maart 2009 @ 15:19:
[...]

Ik snap hem niet? VIND.ALLES zoekt het eerste voorkomen van een string in een tekst, niet het aantal voorkomens? VIND.ALLES("f", A1) is 5, omdat op de 5e positie een f staat.

Een voorbeeldstring: e16*2621/175*45673*12

Dus hier moet 3 uitkomen.
Mogelijke antwoord is altijd 3 of 4, er komen dus altijd 3 of 4 sterretjes in voor.
Je hebt gelijk :), ik moet telkens die vertaalslag van engelse office naar nederlandse gelimiteerde functies maken :P

alternativ


Verwijderd

Topicstarter
Alternativ schreef op woensdag 18 maart 2009 @ 15:28:
[...]

Je hebt gelijk :), ik moet telkens die vertaalslag van engelse office naar nederlandse gelimiteerde functies maken :P
Vervelend is dat ja :)
Ik heb van alles geprobeerd, maar kom er niet uit. Ik vind het bizar dat zoiets simpels gewoonweg niet wil 8)7

  • Alternativ
  • Registratie: Juli 2003
  • Laatst online: 26-11 20:33

Alternativ

4 8 15 16 23 42

Ik kom na een indrukwekkende googletocht alleen maar vba scripts tegen, het is jammer dat de vervangen functie niet werkt. Verder ben ik wel aardig door mijn suggesties heen.

alternativ


Verwijderd

Topicstarter
Alternativ schreef op woensdag 18 maart 2009 @ 16:04:
Ik kom na een indrukwekkende googletocht alleen maar vba scripts tegen, het is jammer dat de vervangen functie niet werkt. Verder ben ik wel aardig door mijn suggesties heen.
In ieder geval hardstikke bedankt!!!!!

In overleg met de klant is wel tot een tijdelijke oplossing. We weten het 4e gedeelte van de string (tussen sterretje 3 en het einde/sterretje 4). Deze lengte weten we ook, noem dat x.
Nu nemen wij RECHTS(string, x) en vergelijken dat met lengte 4.
Als dat ongelijk is, zit er nog een stukje achter en is er een 5e deel, als dat gelijk is, kwam er niets meer na.

Dat gaat alleen op als die 2 gedeeltes niet gelijk zijn, maar dat is niet zo.

Toch houd ik me aanbevolen als er toch een waterdichte functie is.
Pagina: 1