Страницы: 1
RSS
Если ячека содержит "-" то писать значения ячеек через запятую..
 
Добрый день!  
Подскажите пожалуйста не как не могу додумать формулу чтобы она при нахождении в списке значение "-" в др ячейке через запятую перечислила данные ячеек которые содержать "-"    
Пример чуть ниже
 
Такую формулу составить невозможно. Только макрос или ЮДФ (пользовательская функция)
 
{quote}{login=Михаил С.}{date=09.09.2011 09:16}{thema=}{post}Такую формулу составить невозможно. Только макрос или ЮДФ (пользовательская функция){/post}{/quote}  
ну пускай даже будет макрос, каким образом можно реализовать?
 
С допстолбцом правее =A3&C3 и UDF VLOOKUPCOUPLE() из копилки получается так для Вашего красного:  
=VLOOKUPCOUPLE($B$3:$D$40;3;J7&"-";1;", ")  
Ещё у Дмитрия была СцепитьЕсли()  
 
Хотя, если уж использовать UDF, то можно свою спецюдф написать, чтоб без допстолбца работало.
 
Вот, по мотивам :)
 
UDF
 
Ну вот, аж 3 варианта :)  
Элегантно у Казанского, зато в моей можно и разделители, и критерий менять, да и с закрытым файлом работать должна.
 
Кстати, эта VLOOKUPCOUPLE_spec() получилась поуниверсальней оригинала - её можно и как родителя использовать, если условия например так записать:  
=VLOOKUPCOUPLE_spec($A$3:$C$40;1;1;J3&J3;2;", ")  
Здесь собирает все цифры Иванова, не смотря на плюсы/минусы.
 
здравствуйте!  
у меня сходный вопрос, но немного усложненный :)  
никак не могу разобраться как сделать...  
задача следующая:  
есть два значения BLE252B70ES2 и BLE252B70ES2 R  
по данным значениям есть статистика на других листах (см. пример). по сути эти значения являются одним и тем же. нужно на странице итоги, избавиться от строки BLE252B70ES2 R и в колонку D подтянуть сумму значений BLE252B70ES2 и BLE252B70ES2 R с другого листа в строку с BLE252B70ES2 (надеюсь понятно объяснил :)).  
никак не получается реализовать эту идею...
 
Не очень понятно - конкретики нет - что/куда/откуда...  
Но Вы не пробовали тянуть по BLE252B70ES2 & "*" ?
 
Нашёл где...  
 
=SUMIF('07-2011'!A2:A133;A2&"*";'07-2011'!B2:B133)
 
подробнее:  
необходимо на страницу итоги в колонку D подтягивать значения с другой страницы по частичному совпадению в ячейке (в данном примере BLE252B70ES2), т.е. фактически суммировать значения с другой страницы строк BLE252B70ES2 и BLE252B70ES2 R. при этом должна работать формула уже учавствующая на странице итоги в колонке D.
 
Немного изменил код UDF, т.к. смотрю формулу используют и в других задачах, где может быть критично то, что между критериями нет разделителя (в вопросе темы это роли не играло, другие данные).  
Т.е. в коде в файле могут перепутаться сравниваемые пары вида 123 123 и 12 3123  
С новым кодом такого не произойдёт.  
Формулу теперь писать вида    
=VLOOKUPCOUPLE_spec($A$3:$C$40;1;3;J3&"|"&"-";2;", ")  
т.е. между критериями добавлять разделитель "|"  
 
Function VLOOKUPCOUPLE_spec(Table As Variant, SearchColumnNum1 As Integer, SearchColumnNum2 As Integer, SearchValue As Variant, _  
                      RezultColumnNum As Integer, Separator_ As String)  
'Table - таблица, где ищем  
'SearchColumnNum1/2 - столбцы, где ищем  
'SearchValue - данные, которые ищем, задавать с "|" посередине  
'RezultColumnNum - колонка, откуда берём результат  
'Separator_ - разделитель, желательно вводить с пробелом в конце  
 
   Dim i As Long  
   Select Case TypeName(Table)  
   Case "Range"  
       For i = 1 To Table.Rows.Count  
           If Table.Cells(i, SearchColumnNum1) & "|" & Table.Cells(i, SearchColumnNum2) = SearchValue Then  
               If VLOOKUPCOUPLE_spec <> "" Then  
                   VLOOKUPCOUPLE_spec = VLOOKUPCOUPLE_spec & Separator_ & Table.Cells(i, RezultColumnNum)  
               Else  
                   VLOOKUPCOUPLE_spec = Table.Cells(i, RezultColumnNum)  
               End If  
           End If  
       Next i  
   Case "Variant()"  
       For i = 1 To UBound(Table)  
           If Table.Cells(i, SearchColumnNum1) & "|" & Table.Cells(i, SearchColumnNum2) = SearchValue Then  
               If VLOOKUPCOUPLE_spec <> "" Then  
                   VLOOKUPCOUPLE_spec = VLOOKUPCOUPLE_spec & Separator_ & Table(i, RezultColumnNum)  
               Else  
                   VLOOKUPCOUPLE_spec = Table(i, RezultColumnNum)  
               End If  
           End If  
       Next i  
   End Select  
   If VLOOKUPCOUPLE_spec = 0 Then VLOOKUPCOUPLE_spec = ""  
End Function
Страницы: 1
Читают тему
Наверх