Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2012, 16:47   #1
KApSuL
Форумчанин
 
Регистрация: 04.09.2010
Сообщений: 119
По умолчанию Вытянуть несколько значений в одну ячейку через запятую

Ребят нужно в лист1 ячейка Е8 вытянуть значения у которых на листе "разом" значения в диапазоне S7-S48 больше 0 и меньше 20
с одним значением всё просто, а можно ли как-то вытянуть несколько значений в одну ячейку в зависимости от условия?
к примеру 11, 200, 220, 225

пишу вот такую формулу, но вытягивает только первую ячейку которая подходит под условие

=ЕСЛИ(разом!S7:S48<20&разом!S7:S48> 0;разом!C7:C48;"")

помогите пож
Вложения
Тип файла: rar Зв_т по сортуванню_.rar (93.9 Кб, 10 просмотров)
KApSuL вне форума Ответить с цитированием
Старый 16.01.2012, 16:51   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Или пользовательская функция "сцепитьесли" (погуглите), или с промежуточными вычислениями.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 16.01.2012, 18:02   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

СцепитьЕсли() прямо так не пойдёт, как и VlookupCouple().
Обе нужно изменять/дорабатывать.

Такой простой вариант (по мотивам RAN и немного моим и The_Prist)


Код:
Function VLOOKUPCOUPLE6(Table As Variant, SearchColumnNum As Long, _
                        RezultColumnNum As Long, PMin As Double, PMax As Double, Separator_ As String) As String
    Dim i As Long
    Table = Table.Value
    For i = 1 To UBound(Table)
        If Table(i, SearchColumnNum) >= PMin Then
            If Table(i, SearchColumnNum) <= PMax Then
                VLOOKUPCOUPLE6 = VLOOKUPCOUPLE6 & Separator_ & Table(i, RezultColumnNum)
            End If
        End If
    Next i
    VLOOKUPCOUPLE6 = Mid(VLOOKUPCOUPLE6, Len(Separator_))
End Function
Для 21-50:
=VLOOKUPCOUPLE6(разом!C16:S47;17;1; 21;50;", ")
Но повторы тут не устраняются (как в СцепитьЕсли()), но для этой задачи это роли не играет.
Ну и тщательно не тестировал - если что, говорите.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить несколько CheckBox-ов работать на одну ячейку? NoirSpirit Microsoft Office Excel 2 28.10.2011 13:48
Растягивание строки через одну ячейку detr1x Microsoft Office Excel 2 01.07.2011 12:12
копирую примечание - но не могу вставить в одну ячейку - текст занимает несколько ячеек. Аспирин Microsoft Office Excel 1 16.09.2010 01:44
Ввод данных в ячейку из списка через запятую Amelie_L Microsoft Office Excel 4 20.01.2010 17:46
Извлечь в одну ячейку несколько значений из строки которые удовлетворяют заданному условию. Dorvir Microsoft Office Excel 5 08.04.2008 16:12