Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Склеить текст по трем критериям в т.ч. диапазону дат - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Склеить текст по трем критериям в т.ч. диапазону дат
Anis625 Дата: Пятница, 02.07.2021, 11:12 | Сообщение № 1
Группа: Заблокированные
Ранг: Ветеран
Сообщений: 674
Репутация: 31 ±
Замечаний: 20% ±

Excel 2013
Добрый день, всем участникам форума!

Нашел в просторах интернета код склеивания текста по двум критериям:
[vba]
Код
Function MergeIfs(TextRange As Range, SearchRange1 As Range, Condition1 As String, SearchRange2 As Range, Condition2 As String)
    Dim Delimeter As String, i As Long
    Delimeter = ", " 'символы-разделители (можно заменить на пробел или ; и т.д.)
     
    'если диапазоны проверки и склеивания не равны друг другу - выходим с ошибкой
    If SearchRange1.Count <> TextRange.Count Or SearchRange2.Count <> TextRange.Count Then
        MergeIfs = CVErr(xlErrRef)
        Exit Function
    End If
     
    'проходим по все ячейкам, проверяем все условия и собираем текст в переменную OutText
    For i = 1 To SearchRange1.Cells.Count
        If SearchRange1.Cells(i) = Condition1 And SearchRange2.Cells(i) = Condition2 Then
            OutText = OutText & TextRange.Cells(i) & Delimeter
        End If
    Next i
     
    'выводим результаты без последнего разделителя
    MergeIfs = Left(OutText, Len(OutText) - Len(Delimeter))
End Function
[/vba]
В принципе макрос рабочий, но не работает для трех критериев и даже пробуя на двух критериях с диапазоном дат не работает.

Есть ли обходной путь или как можно подправить код чтобы можно было собрать даты через запятую по критерию диапазона дат и ФИО
К сообщению приложен файл: _--2.xlsm (60.6 Kb)
 
Ответить
СообщениеДобрый день, всем участникам форума!

Нашел в просторах интернета код склеивания текста по двум критериям:
[vba]
Код
Function MergeIfs(TextRange As Range, SearchRange1 As Range, Condition1 As String, SearchRange2 As Range, Condition2 As String)
    Dim Delimeter As String, i As Long
    Delimeter = ", " 'символы-разделители (можно заменить на пробел или ; и т.д.)
     
    'если диапазоны проверки и склеивания не равны друг другу - выходим с ошибкой
    If SearchRange1.Count <> TextRange.Count Or SearchRange2.Count <> TextRange.Count Then
        MergeIfs = CVErr(xlErrRef)
        Exit Function
    End If
     
    'проходим по все ячейкам, проверяем все условия и собираем текст в переменную OutText
    For i = 1 To SearchRange1.Cells.Count
        If SearchRange1.Cells(i) = Condition1 And SearchRange2.Cells(i) = Condition2 Then
            OutText = OutText & TextRange.Cells(i) & Delimeter
        End If
    Next i
     
    'выводим результаты без последнего разделителя
    MergeIfs = Left(OutText, Len(OutText) - Len(Delimeter))
End Function
[/vba]
В принципе макрос рабочий, но не работает для трех критериев и даже пробуя на двух критериях с диапазоном дат не работает.

Есть ли обходной путь или как можно подправить код чтобы можно было собрать даты через запятую по критерию диапазона дат и ФИО

Автор - Anis625
Дата добавления - 02.07.2021 в 11:12
Pelena Дата: Пятница, 02.07.2021, 14:49 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19404
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Вариант в файле.
НО! У Вас же там запрос Power Query. Можно всё прямо в нём сделать
К сообщению приложен файл: -2.xlsm (62.3 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Вариант в файле.
НО! У Вас же там запрос Power Query. Можно всё прямо в нём сделать

Автор - Pelena
Дата добавления - 02.07.2021 в 14:49
Anis625 Дата: Пятница, 02.07.2021, 15:53 | Сообщение № 3
Группа: Заблокированные
Ранг: Ветеран
Сообщений: 674
Репутация: 31 ±
Замечаний: 20% ±

Excel 2013
Pelena,
Перед обращением на форум тоже пытался провернуть через PQ сделать группировку, но так и не получилось =(
Спасибо Вам огромное за помочь с кодом
 
Ответить
СообщениеPelena,
Перед обращением на форум тоже пытался провернуть через PQ сделать группировку, но так и не получилось =(
Спасибо Вам огромное за помочь с кодом

Автор - Anis625
Дата добавления - 02.07.2021 в 15:53
RAN Дата: Пятница, 02.07.2021, 16:54 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Лена, ты зачем код на помочи прицепила? :D


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЛена, ты зачем код на помочи прицепила? :D

Автор - RAN
Дата добавления - 02.07.2021 в 16:54
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!