< návrat zpět

MS Excel


Téma: Názvy ulic a čísla popisná rss

Zaslal/a 17.1.2025 11:04

Dobrý den,

prosím o radu. V excelu se moc neorientuju a budu ráda, pokud se dopátráme řešení.

Potřebuji ve sloupci rozdělit názvy ulic a číslo popisné. Např. Susilovo namesti 26 = Aby bylo pouze "Susilovo namesti" v jednom sloupci a "26" ve druhém sloupci. Jedná se o sloupce D a R.

Pročítala jsem si diskuze a pomocí vzorce

=ČÁST(D484;NAJÍT("#";DOSADIT(D484;" ";"#";DÉLKA(D484)-DÉLKA(DOSADIT(D484;" ";""))))+1;1000)

se mi povedlo rozdělit jednotlivá čísla od textu. Bohužel jsem si neuvědomila, že ve sloupci, ze kterého jsem hodnoty brala zůstanou nezměněná - tj. Název ulice + č.p. a ulice bez čísel budou zaznamenané jako "HODNOTA".

Existuje způsob, kterým bych mohla přímo rozdělit text od čísla (kromě "text do sloupců"), který by mi přetáhnul č.p a zachoval názvy ulic? Opravená data budeme dále importovat do SAPu, tak taky zároveň nevím, jestli nebude problém, že je v excelu vložený vzorec?

Moc díky!

Příloha: png57172_bez-nazvu.png (47kB, staženo 18x)
57172_bez-nazvu.png
Zaslat odpověď >

#057174
€Ł мσşqμΐτσ
Dobrý den,
tady bych raději použil makro.
Option Explicit

Sub RozdelAdresy()
Dim ws As Worksheet
Dim posRdk As Long
Dim i As Long
Dim ulice As String
Dim popisne As String
Dim regEx As Object
Dim matches As Object

' Nastavení listu, kde jsou data
Set ws = ThisWorkbook.Sheets(1) ' Změň číslo listu, pokud je potřeba

With ws
' Najde poslední řádek ve sloupci D
posRdk = .Cells(.Rows.Count, "D").End(xlUp).Row

' Vytvoření RegEx objektu
Set regEx = CreateObject("VBScript.RegExp")
regEx.Global = True
regEx.Pattern = "^(.*?)(\d.*)$"

' Prochází všechny řádky ve sloupci D
For i = 2 To posRdk ' Předpokládáme, že hlavička je na řádku 1
If .Cells(i, "D").Value <> "" Then
' Zpracuje adresu pomocí RegEx
If regEx.Test(.Cells(i, "D").Value) Then
Set matches = regEx.Execute(.Cells(i, "D").Value)
ulice = Trim(matches(0).SubMatches(0))
popisne = Trim(matches(0).SubMatches(1))
Else
ulice = .Cells(i, "D").Value
popisne = ""
End If

' Zapíše rozdělené části do sloupců D a R
.Cells(i, "D").Value = ulice
.Cells(i, "R").Value = popisne
End If
Next i
End With

MsgBox "Rozdělení adres dokončeno!", vbInformation
End Sub
citovat

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