Страницы: 1
RSS
Объединение данных из нескольких ячеек в одну
 
Здравствуйте, помогите написать макрос, который будет объединять данные из нескольких ячеек в одну. Все подробно написала в книге! На данный момент пользуюсь функцией СЦЕПИТЬ, но это занимает очень много времени.
Изменено: глория - 24.10.2020 18:24:49
 
Цитата
глория написал:
СЦЕПИТЬ, но это занимает очень много времени
а если
Код
=ОБЪЕДИНИТЬ("_";1;ЕСЛИ($D$2:$D$49=D2;$B$2:$B$49;""))
Соблюдение правил форума не освобождает от модераторского произвола
 
Спасибо большое! Это просто чудо, даже макроса не надо)))
 
:oops: _Xlfn. префикс отображается перед функцией в формуле. При вычислении формулы отображается #NAME. Видимо моя версия Excel не поддерживает эту функцию
Изменено: глория - 24.10.2020 18:59:41
 
Цитата
глория написал:
моя версия Excel
какая у вас версия?
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
какая у вас версия?
Excel 2016  :)

TEXTJOIN стартует с 2019.
Изменено: sokol92 - 24.10.2020 20:31:59
Владимир
 
Цитата
глория написал:
Это просто чудо, даже макроса не надо)))
чудо длилось не долго...
и разбилось об версию Excel
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
del
Изменено: buchlotnik - 23.08.2021 17:57:42
Соблюдение правил форума не освобождает от модераторского произвола
 
 PQ есть, дома, а вот на работе какая версия не знаю. Узнаю только завтра :)  С PQ никогда не работала и только сегодня узнала о существовании. Буду разбираться куда это все вставить  :sceptic:  
 
 PQ есть, дома, а вот на работе какая версия не знаю. Узнаю только завтра :)  С PQ никогда не работала и только сегодня узнала о существовании. Буду разбираться куда это все вставить  :sceptic:

Делаю: получить данные из таблицы, выделяю таблицу, открывается расширенный редактор, стираю все что там написано, вставляю запрос. Шипменты собираются, но столбец А открывается на новом листе, а не сразу в таблице. Так и должно быть или я что-то делаю не так? И еще, мне нужно будет каждый раз делать запрос, когда вставляю новую таблицу, с новыми данными?
 
Цитата
sokol92 написал:
Excel 2016  
Привет, Владимир.
Тогда Power Pivot и лишние повторения строк можно убрать :)
 
Все, вопросов больше нет :) просто сохранять в существующий лист, а при вставке новых данных обновлять :D  Теперь мне нужно понять как удалить дубликаты, в этой же таблице недоступно "удалить дубликаты"
Изменено: глория - 25.10.2020 07:46:21
 
С удалёнными дубликатами
 
Цитата
Андрей VG написал:
С удалёнными дубликатами
Таблица видоизменена, и если честно, то я вообще не понимаю что вы в ней делали. Мне нужен первоначальный вид, только без дубликатов. Таблица синхронизируется с другим документом и из нее заполняется форма для печати документов. Менять местами столбцы и группировать по ТК нельзя
 
Цитата
глория написал:
Менять местами столбцы и группировать по ТК нельзя
Я не настаиваю на применении предложенного подхода. :)  Но вполне возможно, кому-то пригодится и такой простой вариант решения.
 
Удалить дубликаты я могу, только если копирую таблицу, вставляю ее как значения на другой лист. Неужели на этом же листе совсем нельзя? :cry:  Мне нужен вид, как на втором листе книги
 
Цитата
глория написал:
как на втором листе книги
Пожалуйста, на втором листе. ;)
 
Здравствуйте! В этой теме buchlotnik предложил запрос данных из таблицы, но работает запрос немного неправильно, подробности я описала внутри книги. Помогите, пожалуйста!
 
buchlotnik, подскажите как вы осуществили заполнение со смещением в формуле массива D2 D3 и тд(ведь не вручную же в каждой ячейке объявлять массив)
Код
=ОБЪЕДИНИТЬ("_";1;ЕСЛИ($D$2:$D$49=D2;$B$2:$B$49;""))

понятно что сначала протянули формулой, а потом если я на диапазоне нажимаю контрл шифт энтр, то во всех ячейках делает D2. Вот как)?

 
Юра1987, спасибо большое, но ОБЪЕДИНИТЬ мне уже предлагали, у меня версия Excel  на работе не поддерживает эту функцию  :cry: поэтому обратились к PQ.  
Изменено: глория - 12.12.2020 07:01:45
 
del
Изменено: buchlotnik - 23.08.2021 15:24:10
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, я просто отталкивался от формулы, которая в файле и там она с фигурными скобками(скрины во вложении), то есть идет как массив.
соответственно и интересуюсь, у вас, как вы вносили данную формулу?
ведь в фигурных скобках может быть только массив?
 
я ее просто вносил и протягивал - но у меня 365 офис;
в старых версиях - вводите формулу в A2 через ctrl+shift+enter - получаете формулу массива в одной ячейке, а ее уже просто протягиваете
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, выдает вот такую ошибку:
Цитата
Expression.Error: Аргументы 5 были переданы функции, которая ожидает значения между 2 и 4.
Подробные сведения:
Pattern = Arguments=List
Чувствует мое сердце, что нужно просить  Excel 2019
 
Цитата
глория написал:
Чувствует мое сердце, что нужно просить Excel 2019
Можно и по старинке, макросом   :)
Код
Sub qqq()
    Dim fio$, fio2$, ship$, rez$, i&, j&, r&
    r = Cells(Rows.Count, 2).End(xlUp).Row
    Application.ScreenUpdating = False
    
    ActiveWorkbook.Worksheets("Лист1").ListObjects("Таблица1").Sort.SortFields _
        .Clear
    ActiveWorkbook.Worksheets("Лист1").ListObjects("Таблица1").Sort.SortFields _
        .Add Key:=Range("F2"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист1").ListObjects("Таблица1").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
For i = 2 To r
    fio = Cells(i, 4).Value
    ship = Cells(i, 2).Value
 For j = 2 To r
     fio2 = Cells(j, 4).Value
   If fio2 = fio Then
      ship = ship & "_" & Cells(j, 2)
   End If
 Next j
     Cells(i, 1).Value = ship
Next i

For i = 2 To r
    j = Len(Cells(i, 1)) - 7
    Cells(i, 1) = Right(Cells(i, 1), j)
Next i
    Application.ScreenUpdating = True
End Sub
 
del
Изменено: buchlotnik - 23.08.2021 15:24:26
Соблюдение правил форума не освобождает от модераторского произвола
 
_Igor_61, спасибо, попробую :)  
Страницы: 1
Наверх