monika.hmirakova
25.04.23,10:53
Dobry den,
potrebujem poradit, mam zoznam zakaznikov, ku ktorym mam emailove adresy, ale niektori zakaznici maju dve a viac emailovych adries a teda zakaznik moze byt na dvoch a viac riadkoch. potrebovala by som nejaky trik ako to co najrychlejsie upravit tak ze jeden zakaznik = jedna bunka kde su vsetky emailove adresy oddelene ciarkou.
existuje na to funkcia textjoin ale mam excel 2013 a firemny notebook kde si nemozem tuto funkciu doplnit.

preto ma zaujima ci niekto nepozna nejaku inu moznost.

dakujem
ivka70
25.04.23,09:06
Pouzi funkciu CONCATENATE a ked sa s tym vyhras cez podmienky, tak tu funkciu textjoin pekne nahradis ....

urcite by som si najskor (napr cez kontingencnu tabulku) urobila jednoznacne hodnoty zakaznikov k tomu vytiahla dalsie informacie.
Chobot
25.04.23,09:08
Dosť nejasne napísané zadanie. Napr. neviem, kde máš tie údaje, či ich chceš do excelu zadávať ručne, či ich chceš z niečoho kopírovať, či ich už máš v exceli, len chceš zlúčiť bunky s e-mailovými adresami a pod.

Ale však nie je problém, ak zadávaš ručne, napísať do bunky mailovú adresu, dať čiarku a potom napísať ďalšiu mailovú adresu ... atď.

Ak tie mailové adresy už máš v bunkách a máš ich v samostatných bunkách, tak existuje excel funkcia (aj v exceli 2013) concatenate. Jej použitie si už nájdeš sama.

Ak nepomôže, potom budeš musieť pripojiť zdrojový súbor a niečo vymyslíme.
monika.hmirakova
25.04.23,09:22
Poznam funkciu concatenate, ale nie az tak aby som si do nej vedela dat taku funkciu ktora by mi pomohla :/
marjankaj
26.04.23,12:25
ak budú max. 4 rovnaké čísla.......že by takto nejako?
treba prvý prázdny riadok
x... =LEFT(SUBSTITUTE(IF(A2=A1;"";B2&", "&B3&", "&B4&", "&B5);", ";"#"; COUNTIF(A2:A10;A2))&"#";FIND("#";SUBSTITUTE(IF(A2=A1;"";B2&", "&B3&", "&B4&", "&B5);", ";"#";COUNTIF(A2:A10;A2))&"#";1)-1)
Chobot
26.04.23,12:45
Idú tie rovnaké mená za sebou (resp. tie identifikačné čísla), alebo môže by napr., že prvý riadok bude jozef, potom budú 3 riadky juraja a potom zase 2 riadny jozefa?

Koľko je max. mailov k jednému menu?
marjankaj
26.04.23,17:01
Ak bude viac rovnakých čísel tak za /B2&", "&B3&", "&B4&", "&B5/ treba pridať /&", "&B6/ prípadne /&", "&B7/ a tak ďalej.
monika.hmirakova
02.05.23,04:53
dakujem krasne, len teda moj subor obsahuje 30tis riadok a rovnakych cisel aj viac. je to komplikovanejsie ako jointext ale funguje, cize velka vdaka este raz!
marjankaj
02.05.23,05:59
A koľko je tých rovnakých čísel? Teda maximálne?
A ako by si použila tú TEXTJOIN?
xxn
05.05.23,14:19
Kedysi som robil niečo podobné tak som to trochu upravil. Je to len narýchlo ale možno pomôže.
Tvoj súbor mi hádzal chybu tak som vytvoril iný, pričom som pridal aj hlavičky stĺpcov.
Je to súbor a makrom takže budeš musieť povoliť makrá.

1. Nakopíruj si do stlpcov A a B svoje údaje.
2. Vzorce v stĺpcoch C a D potiahni do konca súboru (! predtým si ich nevymaž !). Vzorec v stĺpci C "first occurence" indikuje či sa jedná o prvý výskyt osobného čísla v súbore. Nadobúda stavy 1 alebo 0. Vzorec v stĺpci D ráta koľko je v celom súbore (resp. do riadku 50000) opakovaní toho istého osobného čísla.
3. Stlač tlačidlo makra
4. Do riadkov s prvým výskytom osobného čísla Ti v stĺpci E spojí všetky prislúchajúce maily

PS: Ono by to chcelo aby makro doplnilo aj tie vzorce, a mohol by si vynechať krok 2 ... no možno sa na to ešte pozriem.
PS2: Má to ešte jeden malý bug. Za každým mailom to dáva čiarku. Teda aj keď k danému osobnému číslu je v celom súbore iba jeden mail tak ho ukončí čiarkou a taktiež pri viacerých je aj za posledným čiarka...uvidíš keď Ti to zbehne

Tu je ešte to makro ak sa v tom niekto chce pohrabať:

Sub CombineMailAddresses()

Dim NumOfRec As Long
Dim rng As Range
Dim i As Long
Dim rep As Integer
Dim r As Integer

Dim rec As String
Dim myStr As String

'last used row
NumOfRec = Range("A" & Rows.Count).End(xlUp).Row
'sort col A ascending
Range("A2:A" & NumOfRec).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo

For i = 2 To NumOfRec
If Range("C" & i) = 1 Then
myStr = ""
'first new result
Range("E" & i).Value = Range("A" & i).Value
'how many times it repeats
rep = Range("D" & i).Value
For r = 0 To rep - 1
rec = Range("B" & i + r).Value
myStr = myStr & rec & ", "
Range("E" & i) = myStr
Next r
End If
Next i
'set interior color of column E
Range("E2:E" & NumOfRec).Interior.Color = vbYellow
End Sub

!!! Žiaľ pri uploadovaní som zistil že to tu nechce pustiť súbor s makrom, tak som to nahral na:
https://uloz.to/tam/c96e385c-ea2a-4973-9ba2-42780d4ca641

Dúfam že pomôže..