Все ФИО у которых одинаковый адрес вбить в одну ячейку
S0LDAT
Дата: Среда, 26.08.2015, 09:22 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
Добрый день. Помогите сделать: Есть табличка, надо все ФИО у которых одинаковый адрес вбить в одну ячейку Иванов А.А. ул. Ленина, 11, 2 Иванов В.А. ул. Ленина, 11, 2 Иванов И.А. ул. Ленина, 11, 2 Смирнов А.А. ул. Ленина, 33, 32 ... Итог Иванов А.А., Иванов В.А., Иванов И.А. ул. Ленина, 11, 2 Смирнов А.А. ул. Ленина, 33, 32
Добрый день. Помогите сделать: Есть табличка, надо все ФИО у которых одинаковый адрес вбить в одну ячейку Иванов А.А. ул. Ленина, 11, 2 Иванов В.А. ул. Ленина, 11, 2 Иванов И.А. ул. Ленина, 11, 2 Смирнов А.А. ул. Ленина, 33, 32 ... Итог Иванов А.А., Иванов В.А., Иванов И.А. ул. Ленина, 11, 2 Смирнов А.А. ул. Ленина, 33, 32 S0LDAT
Ответить
Сообщение Добрый день. Помогите сделать: Есть табличка, надо все ФИО у которых одинаковый адрес вбить в одну ячейку Иванов А.А. ул. Ленина, 11, 2 Иванов В.А. ул. Ленина, 11, 2 Иванов И.А. ул. Ленина, 11, 2 Смирнов А.А. ул. Ленина, 33, 32 ... Итог Иванов А.А., Иванов В.А., Иванов И.А. ул. Ленина, 11, 2 Смирнов А.А. ул. Ленина, 33, 32 Автор - S0LDAT Дата добавления - 26.08.2015 в 09:22
nilem
Дата: Среда, 26.08.2015, 09:38 |
Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
S0LDAT , привет попробуйте так [vba]Код
Sub ertert() Dim x, i&, j&, k&, s$ x = Range("A3:E" & Cells(Rows.Count, 1).End(xlUp).Row).Value With CreateObject("Scripting.Dictionary") .CompareMode = 1 For i = 1 To UBound(x, 1) s = x(i, 2) & x(i, 3) & x(i, 4) & x(i, 5) If .Exists(s) Then k = .Item(s) x(k, 1) = x(k, 1) & ", " & x(i, 1) Else j = j + 1 x(j, 1) = x(i, 1) x(j, 2) = x(i, 2) x(j, 3) = x(i, 3) x(j, 4) = x(i, 4) x(j, 5) = x(i, 5) .Item(s) = j End If Next i End With With Range("A3:E" & Cells(Rows.Count, 1).End(xlUp).Row + 2) .ClearContents .Resize(j).Value = x End With End Sub
[/vba] как правильно - вбить или забить?
S0LDAT , привет попробуйте так [vba]Код
Sub ertert() Dim x, i&, j&, k&, s$ x = Range("A3:E" & Cells(Rows.Count, 1).End(xlUp).Row).Value With CreateObject("Scripting.Dictionary") .CompareMode = 1 For i = 1 To UBound(x, 1) s = x(i, 2) & x(i, 3) & x(i, 4) & x(i, 5) If .Exists(s) Then k = .Item(s) x(k, 1) = x(k, 1) & ", " & x(i, 1) Else j = j + 1 x(j, 1) = x(i, 1) x(j, 2) = x(i, 2) x(j, 3) = x(i, 3) x(j, 4) = x(i, 4) x(j, 5) = x(i, 5) .Item(s) = j End If Next i End With With Range("A3:E" & Cells(Rows.Count, 1).End(xlUp).Row + 2) .ClearContents .Resize(j).Value = x End With End Sub
[/vba] как правильно - вбить или забить? nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение S0LDAT , привет попробуйте так [vba]Код
Sub ertert() Dim x, i&, j&, k&, s$ x = Range("A3:E" & Cells(Rows.Count, 1).End(xlUp).Row).Value With CreateObject("Scripting.Dictionary") .CompareMode = 1 For i = 1 To UBound(x, 1) s = x(i, 2) & x(i, 3) & x(i, 4) & x(i, 5) If .Exists(s) Then k = .Item(s) x(k, 1) = x(k, 1) & ", " & x(i, 1) Else j = j + 1 x(j, 1) = x(i, 1) x(j, 2) = x(i, 2) x(j, 3) = x(i, 3) x(j, 4) = x(i, 4) x(j, 5) = x(i, 5) .Item(s) = j End If Next i End With With Range("A3:E" & Cells(Rows.Count, 1).End(xlUp).Row + 2) .ClearContents .Resize(j).Value = x End With End Sub
[/vba] как правильно - вбить или забить? Автор - nilem Дата добавления - 26.08.2015 в 09:38
miver
Дата: Среда, 26.08.2015, 09:45 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация:
37
±
Замечаний:
0% ±
Excel 2010
Так пойдет [vba]Код
Sub Collect() Dim Dict, key, Arr(), TArr(), i&, j& Set Dict = CreateObject("Scripting.Dictionary") Arr = [A3:E8].Value For i = 1 To UBound(Arr) key = "" For j = 2 To UBound(Arr, 2) key = key & Arr(i, j) Next j If Dict.exists(key) Then TArr = Dict(key) TArr(1) = TArr(1) & ", " & Arr(i, 1) Dict(key) = TArr Else ReDim TArr(1 To UBound(Arr, 2)) For j = 1 To UBound(Arr, 2) TArr(j) = Arr(i, j) Next j Dict.Add key, TArr End If Next i ReDim Arr(1 To Dict.Count, 1 To UBound(Arr, 2)) i = 1 For Each key In Dict.keys TArr = Dict(key) For j = 1 To UBound(TArr) Arr(i, j) = TArr(j) Next j i = i + 1 Next key Range("A14", Range("A14").Offset(UBound(Arr) - 1, UBound(Arr, 2) - 1).Address).Value = Arr End Sub
[/vba]
Так пойдет [vba]Код
Sub Collect() Dim Dict, key, Arr(), TArr(), i&, j& Set Dict = CreateObject("Scripting.Dictionary") Arr = [A3:E8].Value For i = 1 To UBound(Arr) key = "" For j = 2 To UBound(Arr, 2) key = key & Arr(i, j) Next j If Dict.exists(key) Then TArr = Dict(key) TArr(1) = TArr(1) & ", " & Arr(i, 1) Dict(key) = TArr Else ReDim TArr(1 To UBound(Arr, 2)) For j = 1 To UBound(Arr, 2) TArr(j) = Arr(i, j) Next j Dict.Add key, TArr End If Next i ReDim Arr(1 To Dict.Count, 1 To UBound(Arr, 2)) i = 1 For Each key In Dict.keys TArr = Dict(key) For j = 1 To UBound(TArr) Arr(i, j) = TArr(j) Next j i = i + 1 Next key Range("A14", Range("A14").Offset(UBound(Arr) - 1, UBound(Arr, 2) - 1).Address).Value = Arr End Sub
[/vba] miver
Ответить
Сообщение Так пойдет [vba]Код
Sub Collect() Dim Dict, key, Arr(), TArr(), i&, j& Set Dict = CreateObject("Scripting.Dictionary") Arr = [A3:E8].Value For i = 1 To UBound(Arr) key = "" For j = 2 To UBound(Arr, 2) key = key & Arr(i, j) Next j If Dict.exists(key) Then TArr = Dict(key) TArr(1) = TArr(1) & ", " & Arr(i, 1) Dict(key) = TArr Else ReDim TArr(1 To UBound(Arr, 2)) For j = 1 To UBound(Arr, 2) TArr(j) = Arr(i, j) Next j Dict.Add key, TArr End If Next i ReDim Arr(1 To Dict.Count, 1 To UBound(Arr, 2)) i = 1 For Each key In Dict.keys TArr = Dict(key) For j = 1 To UBound(TArr) Arr(i, j) = TArr(j) Next j i = i + 1 Next key Range("A14", Range("A14").Offset(UBound(Arr) - 1, UBound(Arr, 2) - 1).Address).Value = Arr End Sub
[/vba] Автор - miver Дата добавления - 26.08.2015 в 09:45
S0LDAT
Дата: Среда, 26.08.2015, 09:58 |
Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
20% ±
Excel 2007
nilem , miver , спасибо! как правильно - вбить или забить?
ну это зависит от того, что хочешь получить в итоге
nilem , miver , спасибо! как правильно - вбить или забить?
ну это зависит от того, что хочешь получить в итоге S0LDAT
Ответить
Сообщение nilem , miver , спасибо! как правильно - вбить или забить?
ну это зависит от того, что хочешь получить в итоге Автор - S0LDAT Дата добавления - 26.08.2015 в 09:58
Michael_S
Дата: Среда, 26.08.2015, 12:03 |
Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация:
373
±
Замечаний:
0% ±
Excel2016
[offtop]как правильно - вбить или забить?
-из гугла; -вбить кол -забить ...болт [/offtop]
[offtop]как правильно - вбить или забить?
-из гугла; -вбить кол -забить ...болт [/offtop] Michael_S
Ответить
Сообщение [offtop]как правильно - вбить или забить?
-из гугла; -вбить кол -забить ...болт [/offtop] Автор - Michael_S Дата добавления - 26.08.2015 в 12:03