automatisch herschrijven celinhoud

Status
Niet open voor verdere reacties.

Sander6767

Nieuwe gebruiker
Lid geworden
15 apr 2009
Berichten
4
Beste allemaal,

Graag wil ik de spaties in een cel en de nullen voorafgaand aan de code (van cijfers en letters) in dezelfde cel verwijderen. Ik heb namelijk 2 verschillende tabellen met een sleutelkolom maar de format van de sleutelkolom verschilt per tabel. In beide zitten hier en daar spaties in de celinhoud en soms staan er een aantal nullen voor de "echte" code. Die nullen kunnen niet worden verwijderd door te vermenigvuldigen met 1 want er zitten ook letters in de code.
Een voorbeeld van een celinhoud staat hieronder

oud:
00175000972 A

nieuw:
175000972A

Alvast bedankt voor jullie input,

Sander
 
Je kunt in een query het volgende commando gebruiken:

REPLACE([Veldnaam];" ";"")

Ben je in één keer van je spaties af.

Michel
 
het veld heet ADR15 en dit is waarschijnlijk de benodigde expressie:

IIf([ADR15] Like "00*";Right([adr15];Len([adr15])-2);IIf([ADR15] Like "0*";Right([adr15];Len([adr15])-1);[ADR15]))
 
Het is waarschijnlijk een beetje omslachtig maar het werkt wel :-) zie hieronder de formule:
PHP:
=RECHTS(K16;LENGTE(K16)-
	ALS(LINKS(G16;1)="0";
		ALS(LINKS(G16;2)="00";
			ALS(LINKS(G16;3)="000";
				ALS(LINKS(G16;4)="0000";
					ALS(LINKS(G16;5)="00000";
						ALS(LINKS(G16;6)="000000";
							6
						;5)
					;4)
				;3)
			;2)
		;1)
	;0)
)

Wat hij doet is hij checkt hoeveel 0-en er vanaf de linkerkant achtermekaar komen, vervolgens telt hij alle karakters en diet hij dat totaal min het aantal nullen en vervolgens telt hij van rechts naar links dat aantal karakters en dat is je code zonder de nullen ervoor, deze formule trekt er maximaal 6 nullen vanaf.

wel moet je van te voren met die formule van die andere gozer de spaties eruit halen.
K16 is trouwens de celinhoud...

---->>>> Srry dacht dat het om excel ging....
 
Laatst bewerkt:
Probeer het eens met een functie:

Code:
Function CodeSchoon(Code As String)
Dim sCode() As String, CodeNieuw As String
Dim i As Integer

sCode = Split(Code, " ")

For i = LBound(sCode) To UBound(sCode)
    If i = LBound(sCode) Then sCode(i) = Val(sCode(i))
    CodeNieuw = CodeNieuw & sCode(i)
Next i

CodeSchoon = CodeNieuw

End Function

Deze functie trekt zich niks aan van de lengte van je invoerveld, en maakt van het eerste getal(deel) een getal, en stript dus de voorloopnullen ongeacht het aantl.

In je query zet je de code CodeSchoon([ADR15])
Daar komt dit voorbeeld uit:

TestID ADR15 Expr1
1 00175000972 A 175000972A
2 001750 00972 B 175000972B
3 000176 w 0123 Q 176w0123Q

Lijkt mij wat je wilt.

Michel
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan