< návrat zpět

MS Excel


Téma: Pořadí ZPRAVA - znak TYP(1) rss

Zaslal/a 18.6.2015 15:57

AlfanDobrý den,
chtěl bych požádat o pomoc se zjištěním pořadí ZPRAVA první hodnoty TYP(1) v každé buňce.
Například:
3282011 A výsledek by měl být 3, protože první znak číslo zprava v dané buňce je "" a je třetí zprava, protože je tam mezera. To je má představa.
Děkuji

Příloha: rar25607_rok_wall.rar (35kB, staženo 33x)
Zaslat odpověď >

Strana:  « předchozí  1 2 3
icon #025658
eLCHa
mno možná, ale řešení je stejné ;)citovat
#025661
elninoslov
@eLCHa
Tak toto je perfektné riešenie ! Načo taký komplikovaný vzorec, keď toto je elegantné. Len by som Vám ho doplnil o kontrolu tej SPZ (prvé 3 znaky obsahujú písmeno, vtedy nič nerobiť), a kontrolu chyby. To je ale všetko banalita, vzorec nemá chybu.
=IF(ISERROR(LEFT(A6;3)*1);"";IFERROR(MID(A6;MAX(IFERROR(FIND(ROW($A$1990:$A$2100);A6);0));4)/1;""))

@Alfan
Toto je presne riešenie aké potrebujete, a je jedno, či je to to isté ako v inom vlákne (neštudoval som).citovat
#025662
Alfan
Kouknu na to zitra behem dne. Ja jsem v patek doplnil vzorec i na kontrolu noveho cislovani zakazek a SPZ, takze bych to pripadne zeditoval.
A ta kontrola SPZ je nutna, protoze jinak mi to doplnuje i cislo SPZ z toho intervalu.
Jinak mne ten vzorec z patku s tim mym doplnenim funguje dobre, dam ho sem.citovat
#025668
Alfan
Já nyní mám od pátku "funkční" tento vzorec, kontroluje SPZ i novou syntaxi kódu zakázek.
=KDYŽ(TYP(A2)=2;KDYŽ(NEBO(GETYEAR(A2)="";TYP(HODNOTA(ČÁST(A2;1;1)))=16;TYP(HODNOTA(ČÁST(A2;2;1)))=16;TYP(HODNOTA(ČÁST(A2;2;1)))=16);"NENÍ ROK";GETYEAR(A2));KDYŽ(A(HODNOTA(ČÁST(A2;1;9))>=150001011;HODNOTA(ČÁST(A2;1;9))<=359999999);20&ČÁST(A2;1;2);KDYŽ(GETYEAR(A2)="";"NENÍ ROK";GETYEAR(A2))))
a funkce GETYEAR je:
Function GETYEAR(T As String) As Variant

Dim i As Byte, Y As Variant

GETYEAR = vbNullString

If Len(T) >= 4 Then

For i = 0 To Len(T) - 4

Y = Mid(T, Len(T) - 4 - i + 1, 4)

If IsNumeric(Y) And Y > 1900 And Y < 2100 Then GETYEAR = Y: Exit Function

Next i

End If

End Function

Musel jsem totiž ještě reagovat na nový zápis kódu zakázek.
Nyní má zápis tuto syntaxi:
15 0001 011 je to bez mezer
15 - rok (2015; já to mám omezené intervalem jen do roku 2035)
0001 - čtyřmístné pořadové číslo zakázky v daném roce (může nabývat hodnot 0001 až 9999)
011 - třímístné číslo (kód výrobního úseku; může nabývat hodnoty 011 až 999)
Řešil jsem to asi složitě přes interval, ale nic jiného mě amatéra nenapadlo 1citovat

Strana:  « předchozí  1 2 3

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje