Excel функция несколько значений в одной ячейке

Объединение значений нескольких ячеек в одну текстовую строку в EXCEL

​Смотрите также​ через пару лет​ не моргнет.​

​ несколько условий для​ «)), » «,​Дошло,спасибо​ третью — уже​ при суммировании выводиться​

​ конструкция вида​ 10 000, разница​ на свой лад​ объяснить​2250-3340, 720, 540,2880,760​

​Enter​ кнопку​ ячейки таблицы вплоть​ формулу или текст​Объединим значения из нескольких​

​ ) Но ты​-99800-​ одной ячейки?», то​ «,») & «})»)​Hugo121​

​ действия над этими​ не общее количество​=СУММ(ПСТР(A5;1;НАЙТИ(«/»;A5;1)-1);ПСТР(A5;1;НАЙТИ(«/»;A5;1)-1))&»/»&СУММ(ПСТР(A4;НАЙТИ(«/»;A4;1)+1;10);ПСТР(A4;НАЙТИ(«/»;A4;1)+1;10))​

​ большая​ кто то через​For i =​то есть все​

​. Вуаля! Excel автоматически​Выделить​ до крайней правой.​ сразу в несколько​ ячеек в одной​ же хочешь унижать​kim​ нужно создать новую​ End FunctionОна «не​: Хотя 10 преподаватели​ двумя результатами​ часов, а число​слэн​AlexM​ точку запятой, вообщем​

​ 0 To UBound(arr)​ что написано с​ заполнил все пустые​(Special).​ Далее, удерживая​ ячеек. Это будет​ ячейке.​ мои умственные способности​: Конечно обманет :)​ тему с новым​

​ боится» лишних пробелов,​ ставят только себе,​Skv​ кратное 24 +​: хотя конечноможно и​: Посмотрите еще вариант​ пока никто из​ //задаем цикл фор​ десятичным разделителем нужно​​ ячейки нового столбца​​В диалоговом окне​Shift​ полезно в таких​​Предположим, что имеется диапазон​​ и почему-то продолжаешь​ но случай интересный.​ вопросом. Чтобы узнать​ пустого числителя/знаменателя. В​ кажется так…​

​: «…нужно чтоб они​

​ остальные часы.​ так.. щас формулисты​myr​

​ предыдущих не додумался​​ If arr(i) <>​ умножить на 1000(такие​ такой же формулой.​Выделить группу ячеек​

excel2.ru

Как вставить одинаковые данные (формулы) во все выделенные ячейки одновременно

​, нажмите несколько раз​ ситуациях, когда нужно​ имен, необходимо, чтобы​ думать что все​А логика звучит​ как работают сложные​ ячейке может быть​OLEGOFF​ не складывались а​urfin0000​ изобразят​: идеально,​ как это делать​ «Н/Д» Then //​ значения как (2.25​Если решите вернуться от​(Go To special)​ клавишу со​ вставить формулу во​

​ все имена были​ должны быть такие​ так:​ формулы, нужно знать​

  • ​ и более двух​: Для учителей,которые ставят​ показывались отдельно друг​
    • ​: я бы наверное​
    • ​ztn3t1​
    • ​и код очень​
    • ​ и приходится все​
    • ​ если в цикле​ 3,34) и прочее​
    • ​ таблицы к формату​ отметьте флажком вариант​Стрелкой влево​ все ячейки столбца​
  • ​ выведены подряд в​ умные как ты.​Из общей суммы​
  • ​ как работают простые.​ чисел через дробь​ 10-и​

Выделяем все ячейки, в которые нужно вставить одинаковые данные

​ от друга в​ не стал ломать​

Выделяем целый столбец

  • ​: Вышло, коряво, конечно,​ легкий для понимания​ делать вручную​ (i) равно нд​значения которые написаны​ обычного диапазона, то​​Пустые ячейки​​, пока выделенным не​

​ или заполнить все​​ одной ячейке.​ Хотя у тебя​ (обязательно содержащей либо​ Про работу простых​ или через пробел.​​AlexM​​ одной ячейке… «​

Вставляем данные сразу во все ячейки в Excel

  • ​ голову и просто​ с доп.столбцами, но​только одна строчка​это реально сделать?​ If IsNumeric(arr(i)) Then​​ без десятичного раздилителя​​ выделите любую ячейку​(Blanks) и нажмите​ останется только нужный​

​ пустые ячейки одинаковым​​Когда значений немного, то​ не только ум​ Машу, либо козу)​​ функций, можно почитать​​Макросы в гугл-таблицах​: Что-то просто не​На Лист1, в​​ добавил за основной​​ пока только учусь​​ кода не понятна​​AlexM​ // тогда ищем​ нужно оставить​​ таблицы и на​​ОК​

​ столбец.​ значением (например, «Н/Д»).​ объединить их можно​ но и опыт​​ исключаются только те​​ в справке Excel​ вставить нельзя​ получилось. Массивная формула​ ячейке А1 вписываем​​ таблицей столбцы в​​ :)​vb.net iStr =​​: Вводите стандарты на​​ следущую (i) arr(i)​кроме тех значений​ вкладке​

​.​Это самый быстрый способ​ Оба приёма работают​ с помощью функции​ еще громадный. А​

Выделяем целую строку

  • ​ числа, которые соответствуют​ или задавать интересующий​And_ss​ Код =СУММ((ЛЕВБ(0&B2:G2;ПОИСК(«?/»;0&B2:G2&»/»))+ПСТР(B2:G2&ЕСЛИ(ЕТЕКСТ(B2:G2);»»;»/0″);ПОИСК(«/»;B2:G2&»/0″)+1;9))/2^ЕТЕКСТ(B2:G2))/СЧЁТЗ(B2:G2) Без​ формулу: =СЦЕПИТЬ (Лист2!A1;СИМВОЛ​ которых 12/8 поделил​​Вообще, где то​​ Replace(iStr, » т»,​
  • ​ ввод данных. Иначе​ = arr(i) *​ которые меньше 11​Конструктор​​Вы вернётесь в режим​​ выделить все ячейки​ в Microsoft Excel​ СЦЕПИТЬ() записав формулу​ у меня и​​ условию: «есть Маша,​​ вопрос Гуглу. Здесь​: Здравствуйте!​ дополнительных столбцов.​​ (32);СИМВОЛ (94);СИМВОЛ (32);Лист3!A1)​​ бы через найти​​ в копилке было​​ «»)​​ всегда будут проблемы.​​ 1000 // i​то есть если​​(Design) нажмите кнопку​​ редактирования листа Excel​ столбца, особенно когда​

Выделяем несколько ячеек

​ 2013, 2010, 2007​​ =СЦЕПИТЬ(A6;A7;A8;A9)​​ то и другое​ но нет козы»​ на форуме тоже​Только начинаю изучать​

Выделяем таблицу целиком

​alisavzazerkale​Читаем её так:​​ и пстр на​​ подобное, там одной​

Выделяем все ячейки на листе

​AlexM​​Посмотрите файл, ошибки​​ * 1000 Else​ в ячейки будет​Преобразовать в диапазон​​ и увидите, что​​ данные чередуются с​ и более ранних​Или с помощью Амперсанда​ скромное. Кстати неприятно​ минус сумма чисел​ можно получить ответы​ Ексель!​: Спасибо. Но только​ «выполнить сцепление значений,​ 12 (в первых​ формулой задача решается,​: Строкой кода objRegExp.Pattern​ все равно остались.​ // иначе arr(i)​ 1, 4-5(нужно будет​(Convert to range).​

Выделяем пустые ячейки в заданной области (в строке, в столбце, в таблице)

​ в выбранной области​ пустыми ячейками.​ версиях.​

Вставляем данные сразу во все ячейки в Excel

​ & (добавим еще​​ когда унижаешь. В​​ соответствующих условию: «есть​ на свои вопросы,​​Возник вопрос: как​​ средний балл получается​ записанных на Лист2,​​ 31-м столбце) и​​ нет времени найти.​

Вставляем данные сразу во все ячейки в Excel

​ = «[^-.,;/+шт0-9s]»задаются символы,​​ Function Dlina(iStr) As​​ = Split(arr(i), «-«)(0)​ тоже их умножить​​Этот приём можно использовать​​ выделены только пустые​​Если данные в Excel​​Знание этих простых приёмов​

Вставляем данные сразу во все ячейки в Excel

​ для красоты символ​ принцип это правда​ коза, но нет​ при наличии Вашего​ задать одной ячейке​ неправильный​ ячейка А1 и​ на 8 (в​VLad777​ которые должны остаться​ String Dim arr,​ * 1000 &​ на 1000)​ только, когда все​ ячейки. Три пустых​ оформлены как полноценная​ сэкономит Вам уйму​

Самый быстрый способ вставить формулу во все ячейки столбца

​ пробела): =A6&» «&A7&»​ что ты говоришь​ Маши».​ интереса.​ несколько значений ЕСЛИ​Например, Архипов: (4+5+5+3+5):5=4,4​ Лист3, ячейка А1,​ следующих 31-м столбце).​: можно так.​

Вставляем данные сразу во все ячейки в Excel

  1. ​ в строках.​ i As Long​ «-» & Split(arr(i),​а те что​ ячейки в столбце​​ ячейки гораздо проще​​ таблица, просто кликните​ времени для более​​ «&A8&» «&A9​​ но ты это​koyaanisqatsi​YJYNGK​Например: Я хочу​​ а таблица выдаёт​​ разделив их знаками​ и дели(умножай) до​слэн​В ячейке 125​ iStr = Replace(iStr,​ «-«)(1) * 1000​Вставляем данные сразу во все ячейки в Excel
  2. ​ больше 11 например(760​ пустые, поэтому лучше​ выделить простым щелчком​ по любой ячейке​ интересных занятий.​Если значений много, то​ делаешь в особом​: Здравствуйте.​: Ребята, добрый день!​ чтобы в ячейке​ 4,5. И если​ пробел, крышка, пробел».​ нехочу :)​: можно так​​ строка​​ «.», «,») iStr​​ //вот тут не​​ 4440, 120) нужно​ всего добавлять новый​ мыши – скажете​Вставляем данные сразу во все ячейки в Excel
  3. ​ нужной строки и​
  4. ​Выделяем все ячейки, в​ придется вводить вручную​ ключе достаточно неприятном,​Можно ли перечислить​Вынужден обратиться за​ D2 было значение​

    ​ за 4,4 я​
    ​Не смотря на​

    Вставляем данные сразу во все ячейки в Excel

  5. ​файл не сильно​​но..​​5,29; 4,08, 0,14 торец;​ = Replace(iStr, «,​ понял, тут задано​ оставить​Вставляем данные сразу во все ячейки в Excel

​ столбец. Следующий приём​ Вы и будете​ нажмите​ которые нужно вставить​ много амперсандов и​ я не про​​ несколько строк, то-есть​​ помощью …​​ из ячейки N4​​ и в четверти​

Вставляем данные сразу во все ячейки в Excel

​ то, что формат​ утежелит, а расчетные​www​ 0,17; 0,16, 385​ «, «;») iStr​ только 2 значения,​в итоге получается​

Вставляем одинаковые данные в несколько ячеек при помощи Ctrl+Enter

​ гораздо универсальнее.​ правы. Но как​Shift+Space​ одинаковые данные​ аргументов функции СЦЕПИТЬ().​ сейчас конкретно а​

​ если фамилия водителя​поиск конкретного ответа,​ если в ячейку​ должна ставить 4,​ ячеек на Лист2​ столбцы можно и​: Текст по столбцам​из которой удаляются​ = Replace(iStr, «(«,​ конкретная? 1 первое​ два вопроса​Выделите на листе Excel​ быть, если пустых​

Вставляем данные сразу во все ячейки в Excel

  1. ​.​Выделяем целый столбец​Вставляем данные сразу во все ячейки в Excel
  2. ​ Это неудобно.​​ про начало твоих​​ то взять список​ по моему вопросу,​ В2 я введу​ то за 4,5​ и Лист3 -​ скрыть (для красивости)​ (зазделитель /)​ все ненужные символы​Вставляем данные сразу во все ячейки в Excel
  3. ​ «») iStr =​​ значение * 1000​​как задать формулу​​ ячейки, которые хотите​​ ячеек более 300​Если перед Вами обычный​Выделяем целую строку​Вставляем данные сразу во все ячейки в Excel

​Избежать этого поможет дополнительный​ комментариев в предыдущей​ с листа1 и​ не дал …​ единицу (1), чтобы​ уже можно ставить​ числовой, в ячейке​Павел Черкассы​Владимир​

​ и остается строка​ Replace(iStr, «)», «»)​
​ поставить — и​
​ для нескольких значений​

​ заполнить одинаковыми данными.​

office-guru.ru

Формула для нескольких значений в одной ячейке ексель

​ и они разбросаны​​ диапазон данных, кликните​Выделяем несколько ячеек​ столбец с простейшей​ теме.​ перечислить все не​Мне необходимо посчитать​ в ячейке D2​
​ 5, так что​ А1 её формат​: urfin0000, гораздо проще​
​: Для основного времени:​5,29; 4,08, 0,14 т;​
​ iStr = Replace(iStr,​
​ вторая такая же​ в одной ячейки​ Быстро выделить ячейки​ случайным образом по​ последнюю ячейку нужной​Выделяем таблицу целиком​
​ формулой:​Да вба надо​ равные нулю значения​
​ сумму столбца В​ было значение из​
​ разница важна.​ на Лист1 преобразуется​ добавить строку для​=ЕСЛИ(ЕЧИСЛО(ПСТР(C7:H7;ПОИСК(«/»;C7:H7)-2;2)*1);ПСТР(C7:H7;ПОИСК(«/»;C7:H7)-2;2)*1)+СУММ(ПСТР(C7:H7;ПОИСК(«/»;C7:H7)-1;1)*1)​ 0,17; 0,16, 385​
​ » -«, «;-«)​ переменная * 1000​ и как задать​ помогут приёмы, описанные​
​ диапазону из 10000​ строки и нажмите​
​Выделяем все ячейки на​Значение из последней строки​ начинать изучать. это​ в одной ячейке​ при условии, что​ ячейки N5 если​Или Атаманенко: (5+3+4):3​

​ в общий (текстовый).​​ часов переработки. Снимает​Для переработки:​» т» (пробел​
​ arr = Split(iStr,​ End If End​

​ условия если для​​ выше.​ ячеек?​Shift+Home​ листе​

​ будет содержать желаемую​​ понятно. Но у​ через запятую и​ значения в столбце​ в ячейку В2​ = 4, а​Код знака символа​ множество проблем, единственное​=СУММ(ПСТР(C7:H7;ПОИСК(«/»;C7:H7)+1;2)*1)​ т) убирает строка​ «;») For i​ If Next i​ разных значений в​Предположим, у нас есть​Есть большая таблица, и​. Excel выделит диапазон,​Выделяем пустые ячейки в​ текстовую строку (см.​ меня есть некая​ пробел. Пример на​

​ А (соответствующих ячеек)​​ я введу двойку​ в таблице 4,25.​ можно посмотреть через:​ — выглядит не​Обе формулы масива.​ кода, о которой​ = 0 To​ Dlina = Join(arr,​ одной ячейки​ таблица со списком​ в неё нужно​ начиная от указанной​ заданной области (в​ файл примера).​ инертность что еще​ Лист2​ содержат два искомых​ (2), и таких​В гугл таблицах​ «Вставка», «Символ» (кодировка​ очень​

​Павел Черкассы​​ вы спрашиваете.​ UBound(arr) If IsNumeric(arr(i))​ «; «) //вызов​AlexM​
​ клиентов (мы, конечно​ добавить новый столбец​ Вами ячейки и​ строке, в столбце,​Возвращаясь к функции СЦЕПИТЬ()​ можно сделать без​krosav4ig​ значения (в моем​ ЕСЛИ мне нужно​ нет функции левб​ ASCII дес. )​Владимир​: Спасибо всем откликнувшимся.​fioreroso​ Then arr(i) =​ функции End Functionочень​: Результаты формул можно​ же, возьмём вымышленный​ с какой-нибудь формулой.​ до столбца​ в таблице)​ можно обнаружить, что​ применения ВБА хочется​: UDF СцепитьЕсли​ примере это корни​ втиснуть 9 в​Я пыталась высчитывать​Чтобы не возиться​: А если не​ Помогло, но только​: Добрый день всем!​ IIf(arr(i) < 11,​ близко чувствуются что​ сцепить функцией СЦЕПИТЬ()​ список). В одном​
​ Предположим, это список​А​Самый быстрый способ вставить​ она может вернуть​ дожать. Когда начну​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СцепитьЕсли(СМЕЩ(Лист1!A3;;ПОИСКПОЗ(A9;Лист1!1:1;)-1;СЧЁТЗ(СМЕЩ(Лист1!A:A;;ПОИСКПОЗ(A9;Лист1!1:1;)-1)));»>0″;СМЕЩ(Лист1!A3;;ПОИСКПОЗ(A9;Лист1!1:1;)-1;СЧЁТЗ(СМЕЩ(Лист1!A:A;;ПОИСКПОЗ(A9;Лист1!1:1;)-1)));», «)​
​ слов «маш» и​ ячейку D2​ в таких ячейках​ со считыванием значений​ один человек имеет​
​ частично. Ряд значений​ Есть таблица (список​ arr(i) * 1000,​ вы бы мою​ или знаком &​ из столбцов этой​ интернет-адресов, из которого​. Если нужные данные​ формулу во все​
​ несколько значений в​ применять ВБА в​koyaanisqatsi​ «коз»)​Подскажите, возможно ли​ сред.значение. Делала их​
​ из «сцепленного» -​ такую запись? Лучше​ выглядит таким образом:​ выставок), в одну​ arr(i)) Else On​ проблему решили минут​К вопросу надо​ таблицы записаны сайты,​
​ нужно извлечь имена​ начинаются, например, со​ ячейки столбца​ одной строке и​ рабочей базе наверняка​: krosav4ig, Спасибо. Такое​… к сожалению​ это, потому что​ текстовыми и присваивала​
​ проще указать ссылки​ наверное макрос..​ 7:15 7:15 7:15​
​ общую таблицу выводятся​ Error Resume Next​
​ за 10,​ прикладывать файл.​
​ с которых перешли​ доменов для дальнейшей​ столбца​Вставляем одинаковые данные в​ без утомительного ввода​ нахватаю опять шишек.​ только с макросом​ «суммпроизв» не дала​ обыскал интернет и​
​ числовое значение. Например,​

​ на исходные листы​​vikttur​ 8:0 8:0 12/8​ данные со всех​
​ arr(i) = IIf(arr(i)​чисел в ячейке​myr​ наши клиенты. Пустые​ работы.​B​ несколько ячеек при​ многочисленных аргументов. Для​ Не факт что​ возможно ?​ нужного результата (может​ не могу найти​ ячейке 5/4 присваивала​ и ячейки.​: Где Вы так​ 12/8, где 7:15,​ вкладок. Но…если мы​ < 11, Split(arr(i),​ может быть сколько​: Вот в столбце​ ячейки в этом​Преобразуйте диапазон в таблицу​или​ помощи Ctrl+Enter​ этого запишем формулу​ все будет работать​AndreTM​ у меня не​ ответ! Спасибо!​ значение 4,5. И​Удачи!​ научились? И нас​ 8:0 — количество​ ищем значения через​ «-«)(0) * 1000,​

​ угодно, то есть​​ длина нужно изменить​ столбце необходимо заполнить​

​ Excel. Для этого​​C​Вот самые быстрые способы​
​ =СЦЕПИТЬ(A6:A9), указав в​ так как хотелось​: Антон, завязывай​

​ правильный синтаксис) …​​And_ss​ у меня тоже​
​alisavzazerkale​ учите:​ рабочих часов, ввожу​

​ ВПР, то в​​ Split(arr(i), «-«)(0)) _​ вот так ‘4400,​ значения на то​ текстом «_unknown_», чтобы​ выделите любую ячейку​, зажмите​ выделить ячейки:​ качестве единственного аргумента​ бы.​Сказано же -​прошу помощи в​: Кто профи? Помогите!​ получался неправильный средний​: Добрый день!​»Сегодня будем совмещать​ в формате ч:мин;​ ячейку выводится только​ & «-» &​ 170, 130, 150,​ как должно выглядеть.​
​ облегчить дальнейшую сортировку:​ в диапазоне данных​Shift​Если данные в Excel​ весь диапазон сразу,​

​koyaanisqatsi​​ учи VBA.​

​ решении этой задачи​​SuperCat​
​ балл.​Я учитель, делаю​
​ время и расстояние:​ 12/8 — 12​
​ одно значение, а​ IIf(arr(i) < 11,​ 4,4, 0,17​

​Виктор Михалыч​​Выделите все пустые ячейки​ и нажмите​и понажимайте на​ оформлены как полноценная​
​ а не отдельные​: AndreTM, И кстати​​Вот ты опять​ …​​: And_ss, справку по​OLEGOFF​ в Excel (а​​ копать канаву с​ отработанных часов, из​​ как сделать, чтобы​ Split(arr(i), «-«)(1) *​и записываться они​: Я думаю тут​

CyberForum.ru

Несколько значений в одной ячейке

​ в столбце.​​Ctrl+T​ клавишу со​ таблица, просто кликните​ ячейки. В результате​ вот этот пример​ придумал себе задачку.​nilem​ функции ЕСЛИ читали?​: По мотивам формулы​ точнее, в таблицах​ обеда и до​ них 8 -​ в 1 ячейку​ 1000, Split(arr(i), «-«)(1))​ могут не только​ без VBA не​Нажмите​, чтобы вызвать диалоговое​Стрелкой вправо​ по любой ячейке​ получим лишь значение​ с вба самый​ Этот «список через​
​: вот, например​ Там есть примеры​:)

​ от​​ гугл) для себя​

​ забора» :)​​ сверх нормы. Должно​:)

planetaexcel.ru

Два значения в одной ячейке.

​ выводилось сразу несколько​​ End If Next​ через «,» но​ обойтись! В ячейке​F2​ окно​, пока не добьётесь​ нужного столбца и​ первой ячейки.​ безобидный может быть.​ запятую» стандартными средствами​=СУММПРОИЗВ(ЕЧИСЛО(ПОИСК(«маш»;A5:A11))*(ЕЧИСЛО(ПОИСК(«коз»;A5:A11)))*B5:B11)​ вложенности.​AlexM​ журнал с отметками.​Формулы массива:​ получаться — 61:45​ разных значений? То​

​ i Dlina =​​ и с точкой​ может быть любое​, чтобы отредактировать активную​

​Создание таблицы​​ нужного результата.​ нажмите​Теперь в Строке формул​ так как от​ делать достаточно сложно​
​VLad777​

​Юрий М​​Код =СУММ((ЛЕВБ(0&B2:G2;ПОИСК(«?/»;0&B2:G2&»/»))+ПСТР(B2:G2&ЕСЛИ(ЕТЕКСТ(B2:G2);»»;»/0″);ПОИСК(«/»;B2:G2&»/0″)+1;9)))/(СУММ(—ЕТЕКСТ(B2:G2))+СЧЁТЗ(B2:G2))​ Хотелось бы сделать​=СУММ(ЕСЛИ(ЕЧИСЛО(ПОИСК(«/»;N5:S5));ПСТР(N5:S5;1;ПОИСК(«/»;N5:S5)-1)/24);N5:S5) (Формат «Время,​

​ и 16. Может​​ есть если на​ Join(arr, «; «)​ например «2.4»​ кол.во значений. Если​
​ ячейку, и введите​(Create Table). Если​Удерживайте​Ctrl+Space​ выделим формулу =СЦЕПИТЬ(A6:A9)​

​ этой информации почти​​ (похожая тема), а​

​: так​​: Всего 3 (ТРИ!)​

​AlexM​

​ такую ячейку, в​​ 37:30:55″)​ я изначально пошел​

​ 1 даты (по​​ End Function​
​так же стоит​

​ бы вы значения​
​ в неё что-нибудь:​

​ данные имеют заголовки​

​Ctrl​​.​ и нажмем клавишу​ ничего не зависит.​ он тебе нужен​=СУММПРОИЗВ(ЕЧИСЛО(ПОИСК(«маш»;$A$5:$A$11))*ЕЧИСЛО(ПОИСК(«коз»;$A$5:$A$11))*$B$5:$B$11)​ минуты прошло, а​: В файле «Журнал»​ которой можно выставлять​=СУММ(—ПСТР(N5:S5&»/0»;ПОИСК(«/»;N5:S5&»/»)+1;1))​ не тем путем​ которой ищет ВПР)​AlexM​ учитывать что некоторые​ длины вводили в​ это может быть​ столбцов, поставьте галочку​и кликайте левой​Примечание:​ F9. Получим массив​ она ознакомительно-сравнительного характера.​ когда? — правильно,​

​VLad777​​ Вы уже кричите.​ выдает 4,4​

​ оценки через дробь.​
​Диапазоны корректируйте.​

​ и есть возможность​​ есть 2 выставки,​

​: Еще вариант ошибок​​ пишут значение в​ разные ячейки, то​ текст, число или​ для параметра​

​ кнопкой мыши по​​При выделении любой​ ={«Вася»:»Петя»:»Даша»:»Маша»}, его можно​ если и поймаю​ только в одном​: для 2007 и​ Потерпеть никак?​alisavzazerkale​ Например, за диктант​Мне нужно через функции​

​ по другому отображать​​ то можно ли​ меньше​

​ десятичных числах которые​​ проблем нет, а​ формула. В нашем​Таблица с заголовками​ всем ячейкам, которые​ ячейки в полноценной​ скопировать в буфер​ какой глюк то​ отчётике, который ты​ выше​И где Ваш​: Это как считать.​ 5/4. И чтобы​ в одной ячейки​ часы/минуты?​ в общей таблице​

​myr​​ нужно перевести, а​ в таком варианте…​ случае, это текст​(My Table has​ нужно заполнить данными.​ таблице на Ленте​ обмена (без знака​ уже буду знать​ порежешь на полосочки​=СУММЕСЛИМН(B5:B11;A5:A11;»*маш*»;A5:A11;»*коз*»)​ файл-пример?​Первый предмет диктант​ они учитывались при​ указать 2 значения,​
​Владимир​ в одной ячейке​: по моему идеально?​ не которые пишут​

​ И если вместо​​ «_unknown_».​ headers). Обычно Excel​Кликните по любой ячейке​ меню появляется группа​ = и фигурных​ что к чему​

​ и раздашь водителям,​​YJYNGK​МВТ​ 4/5 средний балл​ расчёте среднего балла.​

​ через «сумм» не​​: А может всё-таки​ и вывести названия​ не?​
​ как надо в​ запятой поставят точку​Теперь вместо​ распознаёт заголовки автоматически,​ таблицы и нажмите​

​ вкладок​
​ скобок) и вставить​ и не пострадаю​
​ «сегодняшний маршрут» называется.​
​: Ребята, спасибо большое,​

planetaexcel.ru

(Excel) Можно ли в одной ячейки указать 2 значения?

​: UPD Без файла-примера​ по предмету 4,5​ Возможно ли такое​ получаеться. Мне нужно​ пример появиться?​ этих двух выставок?​спасибо вам огромное,​ милиметрах например вон​ или где то​Enter​ если это не​Ctrl+A​Работа с таблицами​

​ в нужную ячейку.​​ от не верных​ И зачем тебе​ все отлично !!​
​ плохо, но если​
​Второй предмет 5​ в Excel?​
​ знать можно ли​——​Заранее спасибо за​ а то я​
​ «4400»​ пропустят пробел или…​нажмите​
​ сработало – поставьте​.​
​(Table Tools).​От наборов символов «:»​ данных или иных​

​ ЭТО делать формулами,​​kim​ описание соответствует действительности,​Третий предмет 3/5​Hugo121​ это ячейку разбить​30303 — Красота!!​ помощь​ уже отчаиваться начинал.​

​некоторые вообще изгаляются​​ Ко всему этому​Ctrl+Enter​ галочку вручную.​Нажмите​Если же это обычный​
​ (двойные кавычки, двоеточие​ казусов.​ да ещё и​: Вариант с МУМНОЖ()​
​ то проще так​ средний балл 4​: Думаю и в​ на пополам или​Павел Черкассы​The_Prist​AlexM​
​ пишут в скобках​ ячейка в текстовом​. Все выделенные ячейки​Добавьте новый столбец к​Ctrl+A​ диапазон, т.е. при​ и опять двойные​AndreTM​

​ постоянно пересчитывать при​=СУММПРОИЗВ((МУМНОЖ(—(ЕЧИСЛО(ПОИСК({«маш»;»коз»};A5:A11)));{1:1})=2)*B5:B11)​=ИНДЕКС($N$4:$N$12;D2)​Средний балл по​

​ Экселе это можно​ формулы берушие от​: Пример​:​: Несколько строк с​ диапозон а потом​
​ формате наверняка и​

Можно ли в одну ячейку вставить два числа?

​ будут заполнены введёнными​​ таблице. С таблицей​
​от одного до​ выделении одной из​ кавычки) можно избавиться​: Давай уже перестанем​ изменениях в логистике?​Владимир​gling​ трем предметам​ обработать только макросом​ двух мест данные​Владимир​fioreroso​ ошибками​ через ; пишут​ как изволите текст​

​ данными.​​ эта операция осуществляется​ трех раз. Первое​ ячеек этого диапазона​ с помощью функции​ ругаться, а? Никто​Ты можешь делать​: =СУММПРОИЗВ((ЕЧИСЛО(ПОИСК({«маш»;»коз»};A5:A11))*{1;1}=1)*B5:B11)-СУММ(B5:B11)​

​: Или не летучая​​4,5+5+4 =13,5​ (ну или UDF).​ разделить какием нибудь​: Какие проблемы? Правка​

​: Спасибо. Помогло​​112, 125, 184,​ еще числа через​ считать?​Если Вы знаете другие​ намного проще, чем​ нажатие​ группа вкладок​

​ ПОДСТАВИТЬ() (см. файл​​ никого не унижает​ это только один​
​kim​ в D2 =ИНДЕКС(N4:N12;B2)​

​13,5/3 = 4,5​​ А как там​ значком типа «;/|()»​

​ -> Заменить «/»​​Павел Черкассы​ 204, 206, 234,​
​ запятую​

​AlexM​​ приёмы быстрого ввода​ с простым диапазоном​Ctrl+A​

​Работа с таблицами​​ примера). или с​ и не восхваляет.​

​ раз, только тогда,​​: Кто возьмется объяснить​And_ss​AlexM​ в гугле -​

​ ?​​ на «:» и​: В табеле учета​ 246, 340, …​
​вместо «в первоначальном​: Функция пользователя Function​ данных, расскажите о​ данных. Кликните правой​выделяет текущую область.​(Table Tools) не​ помощью инструмента Заменить​Да, иногда просто​ когда будешь «рисовать»​ такой вариант? :)​
​: Спасибо Вам всем​: Мы при расчёте​ гугл его знает…​
​Алексей матевосов (alexm)​ проблемы нет..​
​ рабочих часов в​myr​ варианте нд нет»​ Dlina(iStr) As String​ них в комментариях.​ кнопкой мыши по​ Второе нажатие, дополнительно​ появляется, выполните следующие​ (нажмите ​ невозможно сдержаться -​

​ этот отчет. А​​=СУММ(СУММЕСЛИ(A5:A11;{«<>»:»=»}&{«*маш*»:»*коз*»};B5:B11)*{-1:1})​ за то, что​​ среднего балла суммируем​
​OLEGOFF​

​: Можно такой формулой​​Павел Черкассы​ одной ячейке указывается​

​: было бы идеально,если​​ это мой косяк​
​ Dim arr, i​ Я с радостью​ любой ячейке в​
​ к текущей области,​
​ действия:​CTRL+H​
​ но это только​ рисовать ты его​
​ikki​
​ помогаете!​

​ все оценки и​​: alisavzazerkale,можно так сделать​ в А1 на​: А как тогда​ общее количество отработанных​ бы все буквы​ что не верно​ As Long arr​

​ добавлю их в​​ столбце, который следует​ выделяет строки с​

​Замечание:​​, чтобы его вызвать).​ тогда, когда кто-то​ будешь кодом -​: мнээээ…​Добавлю пример (значения​

​ делим на их​​ используя доп. столбцы.Которые​ Лист1​

​ считать рабочие часы​​ часов и через​ просто исчезали,но опять​ вас информировал нд​ = Split(iStr, «;»)​ эту статью, сославшись​ после того места,​ заголовками и итогами​К сожалению, в​ Если строка Вася»:»Петя»:»Даша»:»Маша​ (необязательно именно ты)​ и зачем тебе​складываются все числа​ условные)!​ количество. Поэтому мне​
​ можно скрыть,а когда​=Лист2!A1&» — «&Лист3!A1​

CyberForum.ru

Как задать несколько условий для одной ячейки?

​ и часы сверх​​ дробь количество часов​
​ же это не​ писал я от​
​ For i =​ на Вас как​ куда нужно вставить​
​ (например, в полноценных​ случае с простым​ находится в ячейке​ продолжает​ тогда нынешние знания,​ с козами (берутся​Спасибо!​ нужно именно так​ надо открыть.​Разделитель двух данных​ нормы? Как в​ сверх нормы. Есть​ критично,главное что теперь​ руки изначально там​ 0 To UBound(arr)​ автора.​
​ новый столбец, и​ таблицах). Третье нажатие​ диапазоном нажатие​G8​системно​

​ как это сделать​​ с коэф-том 1)​

​gling​​ рассчитать.​Hugo121​ пробел, тире, пробел​ формуле разделить 7:15​

​ ли функция, с​​ не надо в​ пустое пространство,​ If arr(i) <>​Урок подготовлен для Вас​
​ в контекстном меню​ выделяет весь лист.​

​Ctrl+Space​​, то формула для​заблуждаться. И это​ формулой (или даже​ и от них​
​: Посмотрите варианты.​

​alisavzazerkale​​: Под два значения​Если потребуется из​

​ — 7 часов​​ помощью которой можно​ каждой ячейке изменять​If arr(i) <>​
​ «Н/Д» Then If​ командой сайта office-guru.ru​
​ выберите​

​ Думаю, вы догадались,​​выделит все ячейки​

​ замены этих символов,​​ отнюдь не «спор:​ кодом, ориентированным именно​ отнимаются (потомушто -1)​And_ss​: Тогда берите формулу​

​ через обратный слэш​​ ячейки с двумя​ 15 минут рабочих​
​ было просуммировать отдельно​ значения, а в​ » » Then​ IsNumeric(arr(i)) Then arr(i)​

​Источник: https://www.ablebits.com/office-addins-blog/2013/09/26/insert-same-data-multiple-cells-excel/​​Вставить​ что в некоторых​ столбца на листе,​ например, на символ​ Формулы vs VBA»,​ на твою табличку​ те, у которых​: Это гениально!!! Спасибо!​ из сообщения №12​ можно так сделать​ значениями их извлекать,​ или 7 рабочих,​ количество рабочих часов​ 206 ячейке это​ //мне так кажется​ = arr(i) *​Перевел: Антон Андронов​>​ ситуациях вам потребуется​ например, от​ ; будет выглядеть​

planetaexcel.ru

Сумма если в одной ячейке содержится несколько искомых значений.

​ это обычно касается​​ из примера), ведь​
​ нету маш.​ А я уж​
​Казанский​ — а сделайте-ка​ то​
​ 15 сверх нормы?​ и количество часов​ и не ошибка​ arr(i)= «НД» Thenеще​ 1000 Else arr(i)​Автор: Антон Андронов​Столбец слева​ всего лишь одно​C1​ так:​
​ методов решения тех​ данные по рейсам,​но это ниправильная​ думал что такое​: Не получается Неправильный​
​ для трёх, или​формула для первого​Владимир​

​ сверх нормы? Сейчас​​ вовсе, я сам​

​ некоторые пишут там​

​ = Split(arr(i), «-«)(0)​​myr​
​(Insert > Table​

​ нажатие, чтобы выделить​​до​=ПОДСТАВИТЬ(G8;»»»:»»»;»;»)​
​ или иных задач.​

​ по идее, будут​​ формула :)))​ в Ексель не​

​ тип данных пишет.​​ с учётом десятибальной​
​ значения =ЛЕВСИМВ (A1;ПОИСК​

​: Извиняюсь. Совсем из​​ приходится забивать на​

​ после 3к ячеек​​ такие знаки как​ * 1000 &​
​: Добрый день,вопрос как​

​ Column to the​​ весь лист, а​
​C1048576​В итоге, вставив результат​Кстати, опыт в​ храниться в нормализованном​потому что она​ можно! Спасибо!!!!!!!​ Чайник я ещё.​

​ системы…​ («-«;A1)-2)​
​ головы вылетело..​ одного человека две​ хуже бывает пишу,учитывая​ «+» буквы и​ «-» & Split(arr(i),​ написать формула для​ Left).​
​ в некоторых –​, даже если данные​ формулы как значение,​ VBA (или функциях)​ виде с накоплением…​ работает ТОЛЬКО для​

​And_ss​

​ Наверное, что-то неправильно​​OLEGOFF​и для второго​
​Павел Черкассы​ строки — выглядит​
​ что все это​ прочее например пишут​ «-«)(1) * 1000​ нескольких значений в​Дайте название новому столбцу.​ целых три нажатия.​ содержатся только в​ получим строку Вася;Петя;Даша;Маша.​ у меня отнюдь​Ну или ладно:​ варианта, когда в​

planetaexcel.ru

одной формулой в одной ячейке перечислить несколько строк (Формулы/Formulas)

​: Вопрос не по​​ делаю​
​: В листе 2​ =ПСТР (A1;ПОИСК («-«;A1)+2;50)​: Формула, которую дал​ коряво.​ требуется срочно с​ «200+ 3 листа»​ End If End​ одной ячейки.Есть лист​Введите формулу в первую​Выделите нужную область (см.​ ячейках​

​Примечание​​ не огромный. :)​
​koyaanisqatsi​

​ каждой строке есть​​ теме удален [МОДЕРАТОР]​alisavzazerkale​ сделал набросок журнала.​

​где 50 максимальная​​ V срабатывает при​:)
​слэн​ 10 до 4​
​я в таких​ If Next i​ в документе, в​ ячейку нового столбца.​ рисунок ниже), например,​C1:C100​: В формуле для​krosav4ig​: AndreTM, Да я​ либо «маш», либо​И еще вопрос!​: Формула массива вводится​А какая разница​ длина строки с​ вводе данных таким​: а зачем вторая​ и так каждую​ значениях ставлю нд​
​ Dlina = Join(arr,​ котором находится произвольное​ В своём примере​ целый столбец.​.​ замены двойных кавычек​: Тут было​ тебе уже сто​ «коз», либо оба​ — где есть​ сочетанием клавиш Ctrl+Shift+Enter​ какая система оценок?​ двумя значениями.​ образом: 7:15/0, 8:0/0,​ строка? может лучше​ неделю, то этот​ или просто «200»​ «; «) End​:)
​ количество числовых значений​

​ я использую формулу​​Нажмите​Выделите первую ячейку столбца​ » использовано 2​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(A11)-ДЛСТР(ПОДСТАВИТЬ(A11;»,»;))=ЧСТРОК(СМЕЩ(Лист1!$A$3;;ПОИСКПОЗ(A9;Лист1!$1:$1;)-1;СЧЁТЗ(СМЕЩ(Лист1!$A:$A;;ПОИСКПОЗ(A9;Лист1!$1:$1;)-1))));A11;ЕСЛИ(ДЛСТР(A11)>1;A11&»,»;»,»)&ИНДЕКС(«»&СМЕЩ(Лист1!$A$3;;ПОИСКПОЗ(A9;Лист1!$1:$1;)-1;СЧЁТЗ(СМЕЩ(Лист1!A:A;;ПОИСКПОЗ(A9;Лист1!$1:$1;)-1)));1+ДЛСТР(A11)-ДЛСТР(ПОДСТАВИТЬ(A11;»,»;))));»,0,»;»,,»)​ тысяч раз говорил​ сразу.​ уроки всех этих​alisavzazerkale​Hugo121​Петрина александр​ 12:0/8:0, 8:0/8:0. Выглядит​ доп столбец​ день превращается в​Вот присылаю значения,какие​ Function​в виде ‘2.25​ для извлечения доменных​F5​ (или вторую, если​ двойные кавычки «».​должны быть включены​ что ты прав.​если будут строки,​ сложных формул! Спасибо!​, вдогонку функция на​: посчитайте своим решением​: а что мешает​ очень коряво, но​ISergey​ жопу​ бывают​myr​ — 3.34, 0,72;​ имён:​
​и в появившемся​ первая ячейка занята​В этой статье Вы​ итеративные вычисления​ Еще я тебе​ в которых не​gling​ VBA Function срб(x)​ среднее у 4/10​ в одну ячейку​ с этим можно​: если список не​сколько там таких​ячеек там около​: Скрипт запустил что​

​ 0,54; 2,88,760​​=MID(C2,FIND(«:»,C2,»4″)+3,FIND(«/»,C2,9)-FIND(«:»,C2,»4″)-3)​ диалоговом окне​ заголовком), затем нажмите​ узнаете 2 самых​на ячейке с​ говорил что я​ будет ни «маш»,​: Если задаваемый вопрос​ срб = Evaluate(«AVERAGE({«​OLEGOFF​ положить одну формулу,​ мирится если бы​ очень большой и​ ячеек будет 1000​ 10к​ то работает что​

​надо привести это​​=ПСТР(C2;НАЙТИ(«:»;C2;»4″)+3;НАЙТИ(«/»;C2;9)-НАЙТИ(«:»;C2;»4″)-3)​Переход​Shift+Ctrl+End​ быстрых способа вставить​;)
​ формулой F2->Enter ,​ скорее всего смогу​ ни «коз», формула​ не связан с​ & Replace(WorksheetFunction.Trim(Replace(Join(WorksheetFunction.Index(x.Value, 1,​: 7,а что не​​ во вторую -​​ не вылезла очередная​ редко изменяет размеры,​ максимум, а было​и каждый пишет​ то нет попытаюсь​ все в вид​
​Нажмите​(Go to) нажмите​, чтобы выделить все​ в Excel одинаковую​

​ зажать F9​​ оперировать основами VBA​
​ обманет и глазом​
​ темой «Как задать​ 0)), «/», «​
​ так?​ вторую, а в​ проблема :) -​

excelworld.ru

​ то вам поможет​

Под выпадающим списком понимается содержание в одной ячейке нескольких значений. Когда пользователь щелкает по стрелочке справа, появляется определенный перечень. Можно выбрать конкретное.

Очень удобный инструмент Excel для проверки введенных данных. Повысить комфорт работы с данными позволяют возможности выпадающих списков: подстановка данных, отображение данных другого листа или файла, наличие функции поиска и зависимости.

Создание раскрывающегося списка

Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».

Создание выпадающего списка.

Ввести значения, из которых будет складываться выпадающий список, можно разными способами:

  1. Вручную через «точку-с-запятой» в поле «Источник».
  2. Ввод значений.

  3. Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
  4. Проверка вводимых значений.

  5. Назначить имя для диапазона значений и в поле источник вписать это имя.

Имя диапазона.
Раскрывающийся список.

Любой из вариантов даст такой результат.



Выпадающий список в Excel с подстановкой данных

Необходимо сделать раскрывающийся список со значениями из динамического диапазона. Если вносятся изменения в имеющийся диапазон (добавляются или удаляются данные), они автоматически отражаются в раскрывающемся списке.

  1. Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
  2. Форматировать как таблицу.

  3. Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
  4. Выпадающий список.

  5. Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:

Ввод значения в источник.

Протестируем. Вот наша таблица со списком на одном листе:

Список и таблица.

Добавим в таблицу новое значение «елка».

Добавлено значение елка.

Теперь удалим значение «береза».

Удалено значение береза.

Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.

Теперь сделаем так, чтобы можно было вводить новые значения прямо в ячейку с этим списком. И данные автоматически добавлялись в диапазон.

Ввод данных из списка.

  1. Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
  2. Создание имени.

  3. Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
  4. Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
  5. Сообщение об ошибке.

  6. Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
  7. Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim lReply As Long
     
        If Target.Cells.Count > 1 Then Exit Sub
        If Target.Address = "$C$2" Then
         If IsEmpty(Target) Then Exit Sub
           If WorksheetFunction.CountIf(Range("Деревья"), Target) = 0 Then
              lReply = MsgBox("Добавить введенное имя " & _
                             Target & " в выпадающий список?", vbYesNo + vbQuestion)
              If lReply = vbYes Then
                  Range("Деревья").Cells(Range("Деревья").Rows.Count + 1, 1) = Target
              End If
           End If
         End If
    End Sub
     
  8. Сохраняем, установив тип файла «с поддержкой макросов».
  9. Сообщение об ошибке.

  10. Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».

Макрос.

Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».

Нажмем «Да» и добавиться еще одна строка со значением «баобаб».

Выпадающий список в Excel с данными с другого листа/файла

Когда значения для выпадающего списка расположены на другом листе или в другой книге, стандартный способ не работает. Решить задачу можно с помощью функции ДВССЫЛ: она сформирует правильную ссылку на внешний источник информации.

  1. Делаем активной ячейку, куда хотим поместить раскрывающийся список.
  2. Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).

Имя файла, из которого берется информация для списка, заключено в квадратные скобки. Этот файл должен быть открыт. Если книга с нужными значениями находится в другой папке, нужно указывать путь полностью.

Как сделать зависимые выпадающие списки

Возьмем три именованных диапазона:

Три именованных диапазона.

Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.

  1. Создадим первый выпадающий список, куда войдут названия диапазонов.
  2. Список диапазонов.

  3. Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
  4. Таблица со списком.

  5. Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.
  6. Второй раскрывающийся список.

    Выбор нескольких значений из выпадающего списка Excel

    Бывает, когда из раскрывающегося списка необходимо выбрать сразу несколько элементов. Рассмотрим пути реализации задачи.

    1. Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
    2. Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next
          If Not Intersect(Target, Range("Е2:Е9")) Is Nothing And Target.Cells.Count = 1 Then
              Application.EnableEvents = False
              If Len(Target.Offset(0, 1)) = 0 Then
                  Target.Offset(0, 1) = Target
              Else
                  Target.End(xlToRight).Offset(0, 1) = Target
              End If
              Target.ClearContents
              Application.EnableEvents = True
          End If
      End Sub
       
    3. Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
    4. Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next
          If Not Intersect(Target, Range("Н2:К2")) Is Nothing And Target.Cells.Count = 1 Then
              Application.EnableEvents = False
              If Len(Target.Offset(1, 0)) = 0 Then
                  Target.Offset(1, 0) = Target
              Else
                  Target.End(xlDown).Offset(1, 0) = Target
              End If
              Target.ClearContents
              Application.EnableEvents = True
          End If
      End Sub
       
    5. Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.

    6. Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next
          If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
              Application.EnableEvents = False
              newVal = Target
              Application.Undo
              oldval = Target
              If Len(oldval) <> 0 And oldval <> newVal Then
                  Target = Target & "," & newVal
              Else
                  Target = newVal
              End If
              If Len(newVal) = 0 Then Target.ClearContents
              Application.EnableEvents = True
          End If
      End Sub

    Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.

    Выпадающий список с поиском

    1. На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
    2. Вставить ActiveX.

    3. Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
    4. Элемент ActiveX.

    5. Жмем «Свойства» – открывается перечень настроек.
    6. Свойства ActiveX.

    7. Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.

    Скачать пример выпадающего списка

    При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.

Хитрости »

1 Май 2011              163993 просмотров


Как сцепить несколько значений в одну ячейку по критерию? СцепитьЕсли

Все чаще вижу на разных форумах вопросы типа: Есть таблица, в одном столбце фамилии, в другом оценки(виды работ и т.д.). Как сцепить в одной ячейке для каждой фамилии только принадлежащие ей оценки? Или собрать в одну ячейку через запятую фамилии всех сотрудников одного отдела, но все сотрудники идут вразнобой. Т.е. из такой таблицы:
Исходная таблица
Получить такую:
Результат
Стандартными функциями это сделать весьма проблематично, т.к. заранее неизвестно сколько будет этих оценок и фамилий.. MIcrosoft работает над усовершенствованием Excel и теперь стало возможным сделать это и стандартными функциями. Правда, с небольшими ограничениями: сделать это могут только пользователи Excel 2019 и выше или Office 365 по подписке. В итоге счастливые обладатели новейших версий могут использовать достаточно несложные формулы:
=ОБЪЕДИНИТЬ(«; «;1;ФИЛЬТР(B2:B20;A2:A20=A2;»»))
=TEXTJOIN(«; «,1,FILTER(B2:B20,A2:A20=A2,»»))
Аргументы функции:

  • («; «) — символ(или несколько символов), которым необходимо объединять найденные значения
  • (A2:A20) — диапазон, в котором искать критерий
  • (A2) — критерий. Значение, на основании которого необходимо сцеплять значения. Значение просматривается в диапазоне значений(A2:A20)
  • (B2:B20) — из этого диапазона берется значение для сцепления, если значение напротив в диапазонe(A2:A20) совпадает с искомым значением A2

Для любителей «старой школы» можно вместо функции ФИЛЬТР(FILTER) использовать стандартную ЕСЛИ(IF):
=ОБЪЕДИНИТЬ(«; «;1;ЕСЛИ(A2:A20=A2;B2:B20;»»))
=TEXTJOIN(«; «,1,IF(A2:A20=A2,B2:B20,»»))
так же это можно использовать в Excel 2019 в случае, если функция ФИЛЬТР отсутствует — да, может быть и такое, хоть Microsoft и пишет, что она там поддерживается
Аргументы точно такие же, как в формуле выше. Правда эта формула вводится в ячейку как формула массива(т.е. одновременным нажатием трех клавиш Ctrl+Shift+Enter).
Хотя в самых новых версия(а-ля 365) вводить тремя клавишами уже не обязательно — Excel сам поймет, что требуется обработка массива ячеек.


А для пользователей Excel 2016 и ниже я написал небольшую функцию пользователя на VBA, которая решает данную проблему. Так же подобную функцию называют «многоразовый ВПР«, потому что она по критерию возвращает ВСЕ значения для этого критерия, а не только первое.

'---------------------------------------------------------------------------------------
' Author : The_Prist(Щербаков Дмитрий)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          http://www.excel-vba.ru
' Purpose:
'---------------------------------------------------------------------------------------
Function СцепитьЕсли(ByRef Диапазон As Range, ByVal Критерий As String, ByRef Диапазон_сцепления As Range, Optional Разделитель As String = " ", Optional БезПовторов As Boolean = False) As String
    Dim li As Long, sStr As String, avItem, avDateArr(), avRezArr(), lUBnd As Long
    If Диапазон.Count > 1 Then
        avDateArr = Intersect(Диапазон, Диапазон.Parent.UsedRange).Value
        avRezArr = Intersect(Диапазон_сцепления, Диапазон_сцепления.Parent.UsedRange).Value
        If Диапазон.Rows.Count = 1 Then
            avDateArr = Application.Transpose(avDateArr)
            avRezArr = Application.Transpose(avRezArr)
        End If
    Else
        ReDim avDateArr(1, 1): ReDim avRezArr(1, 1)
        avDateArr(1, 1) = Диапазон.Value
        avRezArr(1, 1) = Диапазон_сцепления.Value
    End If
    lUBnd = UBound(avDateArr, 1)
    'Определяем вхождение операторов сравнения в Критерий
    Dim objRegExp As Object, objMatches As Object
    Set objRegExp = CreateObject("VBScript.RegExp")
    objRegExp.Global = False: objRegExp.Pattern = "=|<>|=>|>=|<=|=<|>|<"
    Set objMatches = objRegExp.Execute(Критерий)
    'Если есть вхождения
    If objMatches.Count > 0 Then
        Dim sStrMatch As String
        sStrMatch = objMatches.Item(0)
        Критерий = Replace(Replace(Критерий, sStrMatch, "", 1, 1), Chr(34), "", 1, 2)
        If IsNumeric(Критерий) And Критерий <> "" Then
            Критерий = CDbl(Критерий)
        End If
        Select Case sStrMatch
        Case "="
            For li = 1 To lUBnd
                If avDateArr(li, 1) = Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case "<>"
            For li = 1 To lUBnd
                If avDateArr(li, 1) <> Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case ">=", "=>"
            For li = 1 To lUBnd
                If avDateArr(li, 1) >= Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case "<=", "=<"
            For li = 1 To lUBnd
                If avDateArr(li, 1) <= Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case ">"
            For li = 1 To lUBnd
                If avDateArr(li, 1) > Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case "<"
            For li = 1 To lUBnd
                If avDateArr(li, 1) < Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        End Select
    Else    'Если нет вхождения
        For li = 1 To lUBnd
            If avDateArr(li, 1) Like Критерий Then
                If Trim(avRezArr(li, 1)) <> "" Then _
                   sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
            End If
        Next li
    End If
 
    If БезПовторов Then
        Dim oDict As Object, sTmpStr
        Set oDict = CreateObject("Scripting.Dictionary")
        sTmpStr = Split(sStr, Разделитель)
        On Error Resume Next
        For li = LBound(sTmpStr) To UBound(sTmpStr)
            oDict.Add sTmpStr(li), sTmpStr(li)
        Next li
        sStr = ""
        sTmpStr = oDict.keys
        For li = LBound(sTmpStr) To UBound(sTmpStr)
            sStr = sStr & IIf(sStr <> "", Разделитель, "") & sTmpStr(li)
        Next li
    End If
    СцепитьЕсли = sStr
End Function

Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего функцию СцепитьЕсли можно будет вызвать из Диспетчера функций(Shift+F3), отыскав её в категории Определенные пользователем (User Defined Functions).
Синтаксис записи в ячейку листа:
=СцепитьЕсли(A2:A20;A2;B2:B20;»-«;0)

По принципу работы функция похожа на стандартную СУММЕСЛИ. Указывается диапазон значений(где просматривать значение), критерий и диапазон значений для сцепления. Символ для разделения слов указывать необязательно.

Диапазон(A2:A20) — диапазон, в котором искать критерий(указывается один столбец)

Критерий(A2) — критерий. Значение, на основании которого необходимо сцеплять значения. Может содержать символы подстановки — * и ? и символы сравнения (<>»», <23, >0, «<>»&A1 и т.п.). Просматривается Диапазон. При совпадении значения ячейки в Диапазоне значение из Диапазона_Сцепления добавляется к результату с выбранным разделителем.

Диапазон_сцепления(B2:B20) — из этого диапазона берется значение для сцепления, если значение в аргументе Диапазон совпадает с аргументом Критерий(указывается один столбец). Если в Диапазоне значение 5-ой строки совпадает с критерием, то из Диапазона_Сцепления будет взято так же значение из 5-ой строк этого диапазона и сцеплено с результатом.

Разделитель(«-«) — По умолчанию пробел, но можно задать любой другой символ или группу символов.

БезПовторов — если указать 1 или ИСТИНА, то в результате получится строка, в которой нет одинаковых значений. Если указать 0 или ЛОЖЬ, то будут выведены все значения. По умолчанию значение ЛОЖЬ.

Примечание: для работы функции должны быть разрешены макросы

Скачать пример

  Пример СцепитьЕсли.xls (68,0 KiB, 15 624 скачиваний)


Также см.:
ВПР_МН
Сцепить_МН
СцепитьЕсли
Что такое функция пользователя(UDF)?
ВПР с возвратом всех значений


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Как сцепить несколько значений в одну ячейку по критерию? СцепитьЕсли

Все чаще вижу на разных форумах вопросы типа: Есть таблица, в одном столбце фамилии, в другом оценки(виды работ и т.д.) . Как сцепить в одной ячейке для каждой фамилии только принадлежащие ей оценки? Стандартными функциями это сделать весьма проблематично, т.к. заранее неизвестно сколько будет этих оценок и фамилий. Или собрать в одну ячейку через запятую фамилии всех сотрудников одного отдела, но все сотрудники идут вразнобой. Т.е. из такой таблицы:

Получить такую:

Вот и решил написать небольшую функцию пользователя на VBA, которая решает данную проблему. Так же подобную функцию называют «многоразовый ВПР«, потому что она по критерию возвращает ВСЕ значения для этого критерия, а не только первое.

‘————————————————————————————— ‘ Author : The_Prist(Щербаков Дмитрий) ‘ Профессиональная разработка приложений для MS Office любой сложности ‘ Проведение тренингов по MS Excel ‘ http://www.excel-vba.ru ‘ Purpose: ‘————————————————————————————— Function СцепитьЕсли(ByRef Диапазон As Range, ByVal Критерий As String, ByRef Диапазон_сцепления As Range, Optional Разделитель As String = » «, Optional БезПовторов As Boolean = False) As String Dim li As Long, sStr As String, avItem, avDateArr(), avRezArr(), lUBnd As Long If Диапазон.Count > 1 Then avDateArr = Intersect(Диапазон, Диапазон.Parent.UsedRange).Value avRezArr = Intersect(Диапазон_сцепления, Диапазон_сцепления.Parent.UsedRange).Value If Диапазон.Rows.Count = 1 Then avDateArr = Application.Transpose(avDateArr) avRezArr = Application.Transpose(avRezArr) End If Else ReDim avDateArr(1, 1): ReDim avRezArr(1, 1) avDateArr(1, 1) = Диапазон.Value avRezArr(1, 1) = Диапазон_сцепления.Value End If lUBnd = UBound(avDateArr, 1) ‘Определяем вхождение операторов сравнения в Критерий Dim objRegExp As Object, objMatches As Object Set objRegExp = CreateObject(«VBScript.RegExp») objRegExp.Global = False: objRegExp.Pattern = «=|<>|=>|>=| | 0 Then Dim sStrMatch As String sStrMatch = objMatches.Item(0) Критерий = Replace(Replace(Критерий, sStrMatch, «», 1, 1), Chr(34), «», 1, 2) If IsNumeric(Критерий) And Критерий <> «» Then Критерий = CDbl(Критерий) End If Select Case sStrMatch Case «=» For li = 1 To lUBnd If avDateArr(li, 1) = Критерий Then If Trim(avRezArr(li, 1)) <> «» Then _ sStr = sStr & IIf(sStr <> «», Разделитель, «») & avRezArr(li, 1) End If Next li Case «<>» For li = 1 To lUBnd If avDateArr(li, 1) <> Критерий Then If Trim(avRezArr(li, 1)) <> «» Then _ sStr = sStr & IIf(sStr <> «», Разделитель, «») & avRezArr(li, 1) End If Next li Case «>=», «=>» For li = 1 To lUBnd If avDateArr(li, 1) >= Критерий Then If Trim(avRezArr(li, 1)) <> «» Then _ sStr = sStr & IIf(sStr <> «», Разделитель, «») & avRezArr(li, 1) End If Next li Case » «» Then _ sStr = sStr & IIf(sStr <> «», Разделитель, «») & avRezArr(li, 1) End If Next li Case «>» For li = 1 To lUBnd If avDateArr(li, 1) > Критерий Then If Trim(avRezArr(li, 1)) <> «» Then _ sStr = sStr & IIf(sStr <> «», Разделитель, «») & avRezArr(li, 1) End If Next li Case » «» Then _ sStr = sStr & IIf(sStr <> «», Разделитель, «») & avRezArr(li, 1) End If Next li End Select Else ‘Если нет вхождения For li = 1 To lUBnd If avDateArr(li, 1) Like Критерий Then If Trim(avRezArr(li, 1)) <> «» Then _ sStr = sStr & IIf(sStr <> «», Разделитель, «») & avRezArr(li, 1) End If Next li End If If БезПовторов Then Dim oDict As Object, sTmpStr Set oDict = CreateObject(«Scripting.Dictionary») sTmpStr = Split(sStr, Разделитель) On Error Resume Next For li = LBound(sTmpStr) To UBound(sTmpStr) oDict.Add sTmpStr(li), sTmpStr(li) Next li sStr = «» sTmpStr = oDict.keys For li = LBound(sTmpStr) To UBound(sTmpStr) sStr = sStr & IIf(sStr <> «», Разделитель, «») & sTmpStr(li) Next li End If СцепитьЕсли = sStr End Function

Для применения функции в своем файле достаточно создать стандартный модуль (о том как создать стандартный модуль: Что такое модуль? Какие бывают модули?) и просто вставить приведенный код. После этого в диспетчере функций появиться новая категория (если до этого её не было) — Определенные пользователем (User Defined) . В ней эта функция — СцепитьЕсли.
Синтаксис:
=СцепитьЕсли( B5:B18 ; B5 ; C5:C18 ;»-«;0)

По принципу работы функция похожа на стандартную СУММЕСЛИ. Указывается диапазон значений(где просматривать значение), критерий и диапазон значений для сцепления. Символ для разделения слов указывать необязательно.

Диапазон (B5:B18) — диапазон, в котором искать критерий(указывается один столбец)

Критерий (B5) — критерий. Значение, на основании которого необходимо сцеплять значения. Может содержать символы подстановки — * и ? и символы сравнения ( <>«», 0, «<>«&A1 и т.п.). Просматривается Диапазон. При совпадении значения ячейки в Диапазоне значение из Диапазона_Сцепления добавляется к результату с выбранным разделителем.

Диапазон_сцепления (C5:C18) — из этого диапазона берется значение для сцепления, если значение в аргументе Диапазон совпадает с аргументом Критерий(указывается один столбец). Если в Диапазоне значение 5-ой строки совпадает с критерием, то из Диапазона_Сцепления будет взято так же значение из 5-ой строк этого диапазона и сцеплено с результатом.

Разделитель («-«) — По умолчанию пробел, но можно задать любой другой символ или группу символов.

БезПовторов — если указать 1 или ИСТИНА, то в результате получится строка, в которой нет одинаковых значений. Если указать 0 или ЛОЖЬ, то будут выведены все значения. По умолчанию значение ЛОЖЬ.

Примечание: для работы функции должны быть разрешены макросы

Пример СцепитьЕсли.xls (68,0 KiB, 9 926 скачиваний)

Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам

Макрос работает не корректно, в частности не распознает четырёхзначные значения (например поле «Все сотрудники, с окладом меньше или равным 15000» не указывает значение «Петрова Вера», пока вместо её оклада «6000» не вбить значение «06000»

Как отобразить несколько значений в одной ячейке в Excel

Я нахожусь относительно знаком с Excel и его функцией, но я новичок в VBA (я, однако, имею опыт работы в MATLAB и C). В основном то, что у меня есть лист с другой машине Заполнение заголовка каждого столбца и имя работника заполнения первого столбца. Таблица содержит текстовые значения либо «Поезда», указывая, что человек в этой строке обучаются на оборудовании в указанном столбце, или «Нет», указывая, что они не являются. То, что я хочу сделать, это сделать отдельный лист, который имеет оборудование в первой колонке и один столбец headered как «Обученные». Каждая ячейка теоретически может быть заселена с именами людей, которые обучаются на оборудовании для этой строки. У меня есть для кода петли в VBA, который успешно выводит имена в немедленном окне

но я не смог в течение нескольких часов поиска, чтобы выяснить, как отобразить эти значения в одной ячейке. Это возможно?

Вы должны выбрать, если вы хотите сделать «Для каждого человека, для каждой машины» или «для каждой машины, для каждого человека» в первую очередь. Предположим, вы хотите пойти со второй идеей, вы могли бы пойти с этим псевдо-код:

Это основная идея. Для лучшего представления, я хотел бы сделать все эти операции в некоторых массивах и вставить их в одну операцию.

Используйте оператор конкатенации ( & ) , чтобы собрать значения в строку:

Тогда просто поместить имена их в любой клетки вы хотите.

Как в Excel объединить текст из двух и нескольких ячеек в одну

Объединение текста нескольких ячеек в одну – базовая функция при работе с табличными данными, с ее п.

Объединение текста нескольких ячеек в одну – базовая функция при работе с табличными данными, с ее помощью содержание произвольного количества полей можно сцеплять нужным образом и размещать в свободных ячейках. Она используется при составлении пофамильных списков сотрудников, отчетов различных направлений и других операциях с большими массивами информации. Для объединения ячеек есть два способа: с потерей данных и без потери. В первом случае в объединенной ячейке остается только одно значение, во втором – сохраняется весь текст. Второй способ предполагает как минимум четыре варианта объединения: с использованием двух функций («Сцеп-сцепить» и «Объединить»), при помощи символа амперсанд и с применением макроса. В статье подробно разберемся, как в Excel объединить текст нескольких ячеек в одну.

С помощью функции

Excel предусматривает несколько функций для объединения ячеек. Для начала, расскажем о самой простой и «теряющей» информацию. Если интересует, как в Экселе соединить текст из двух ячеек в одну, оставив только одно значение – то вам понадобится функция «объединить» в разделе «Формат ячейки».

  1. Выделите мышкой ячейки, которые нужно объединить.
  2. По образовавшемуся полю щелкните правой кнопкой мыши.
  3. Выберите пункт «Формат ячеек».
  4. В появившемся окне зайдите в раздел «Выравнивание».
  5. Отметьте галочкой пункт «Объединить ячейки» и нажмите «Ок». Выделенные поля объединяться в одну большую с сохранением содержания первой ячейки.

Также эта функция есть в графе «Главная» в разделе «Выравнивание» в верхней части экрана.

С помощью функции «Сцеп-сцепить»

В ранних версиях Excel для объединения текста ячеек применялась функция «Сцепить», в новых вариантах программы ее заменили функцией «Сцеп». Для ее использования:

  1. Щелкните по пустой ячейке в Excel.
  2. Поставьте знак «=» и большими буквами введите «Сцепить» либо «Сцеп».
  3. В скобках после формулы кликните по ячейке, которая должна быть первой в объединенной ячейке, либо введите ее адрес вручную (например, A1). Затем поставьте точку с запятой, после щелкните или напишите вторую ячейку. Затем поставьте точку с запятой и отметьте третье поле. После перечисления адресов нажмите «Enter». В поле, где вбивали формулу, появится объединенный текст. Он появится без пробелов между текстовыми блоками. Чтобы этого избежать, отбейте пробел в каждой отдельно взятой ячейке после находящегося текста, либо после адреса ячейки в формуле добавьте пробел вручную, написав « » (пробел в кавычках). Пробел в формуле также отделяется от остальных элементов точкой с запятой.

Как в Экселе соединить текст из двух ячеек в одну с помощью функции «Объединить»

«Объединить» — усовершенствованная вариация функции «Сцеп». Ее отличие в том, что параметры вводятся единожды на этапе написания функции. В частности, разделитель придется указать один раз для содержимого всех ячеек. Для того чтобы воспользоваться функцией «Объединить» нужно выполнить действия:

  1. В пустой ячейке поставьте знак «=» и напишите большими буквами «Объединить».
  2. В скобках после формулы укажите разделитель в кавычках (« » ,«,»,« и »), затем поставьте точку с запятой. Второй параметр формулы – это игнорирование пустых полей. Если они не должны учитываться в формуле, напишите «1», в ряде версий этот параметр обозначается словом «Истина» или «Ложь». Затем перечислите через запятую ячейки, которые нужно объединить, и нажмите «Enter».

В итоге формула должна иметь вид: «=ОБЪЕДИНИТЬ(« »;ИСТИНА; «A1»; «A2»; «A3»).

Если в A1 – «Иванов», в А2 – «Иван», в А3 – «Иванович», то после нажатия «Enter» в пустой ячейке появится «Иванов Иван Иванович».

С помощью символа «&»

Четвертый способ объединить ячейки – использовать амперсанд ( «&»). Для этого:

  1. В пустой ячейке наберите «=».
  2. Напишите нужную ячейку, например, А1, затем поставьте знак «&», потом в кавычках введите разделитель. Это может быть пробел или запятая, он также помещается в кавычки, потом введите вторую ячейку, которую нужно объединить. Если их больше двух, пробел выставите после каждой нового поля. Формула должна выглядеть так: «=А1&« »&А2& « »&А3». После нажатия «Enter» содержимое ячеек объединится.

С помощью макроса

Макрос в Excel – это сервис для автоматизации повторяющихся действий, он представляет собой записанную последовательность примененных функций и щелчков мышью для последующего воспроизводства. Используется, если нужно регулярно выполнять типовые задачи, в которых меняются данные, но не структура. Например, макросы используются при составлении ежемесячных отчетов о заработной плате, в которых меняются только цифры, но не метод расчета. Тогда макрос избавит пользователя от необходимости регулярно вручную настраивать и использовать формулы.

Чтобы записать макрос:

  1. В разделе «Разработчик» в графе «Код» нажмите на клавишу «Записать макрос».
  2. В появившемся окне выберите имя макроса, чтобы потом было удобнее его искать, присвойте ему сочетание клавиш и место хранения, добавьте описание.
  3. Нажмите «Ок», затем точно и без ошибок (потому что макрос записывает и ошибки тоже) проделайте алгоритм.
  4. Вернитесь во вкладку «Разработчик» и «Код» и нажмите «Остановить запись».

Макрос записывается в виде кода Visual Basic для приложений на одноименном языке программирования, который доступен для редактирования при нажатии комбинации ALT + F11. При ручном редактировании становится доступным правка записанного макроса, однако это требует дополнительных знаний и недоступно для рядового пользователя. Также макросы способны работать в нескольких продуктах Microsoft Office одновременно. Выполняется макрос нажатием присвоенной комбинации либо через окно «Макрос», которое вызывается комбинацией ALT + F8.

Данные из нескольких ячеек в одну

  • 4 Июнь, 2015 —
  • Уроки Excel —
  • Tags :
  • 0 Comments

Есть несколько способов поместить данные из нескольких ячеек в одну.

Самый простой — это использовать знак &,

Если между данными ячеек нужны пробелы или другие знаки, их можно проставить в отдельном столбце, потом их просто скрыть (в примере в ячейке С2 стоит пробел).

Есть более легкий способ — использовать формулу, чтобы не тыркать кажду ячейку вручную. Это формула СЦЕПИТЬ

Этот способ хорош, если не нужно объединять большие диапазоны данных.

Если нужно объединить данные из большого количества ячеек, расположенных в одном или в нескольких столбцах, проще всего использовать макросы. Для этого находясь в том файле, где нужно разместить в одной ячейке данные и других ячеек надо нажать Alt+F11. Откроется окно макросов. Там надо выбрать пункт Insert, в выпавшем списке пункт Module

и в открывшемся белом поле вставить следующие макрос

Function СЦЕПДИАП_A(Диапазон As Variant, Optional Разделитель As String = » «, _
Optional ПоСтолбцам As Boolean = False, Optional сПереносом As Boolean = False) As String
‘—————————————————————————————
‘ Author : RAN
‘ Purpose : Сцепляет текст ячеек из заданного диапазона
‘ Notes : Разделитель по умолчанию » »
‘ Notes : Optional ПоСтолбцам — просмотр по строкам(умолчание) и по столбцам
‘ Notes : Optional сПереносом по умолчанию — «нет»
‘—————————————————————————————
Dim i&, j&, k&, arr
If сПереносом Then
If Разделитель <> » » Then
Разделитель = Разделитель & vbLf
Else
Разделитель = vbLf
End If
End If
If TypeName(Диапазон) = «Range» Then Диапазон = Диапазон.Value
If Not IsArray(Диапазон) Then СЦЕПДИАП_A = Диапазон: Exit Function
ReDim arr(1 To UBound(Диапазон, 1) * UBound(Диапазон, 2))
If ПоСтолбцам Then
For i = 1 To UBound(Диапазон, 2)
For j = 1 To UBound(Диапазон, 1)
If Len(Диапазон(j, i)) Then k = k + 1: arr(k) = Диапазон(j, i)
Next: Next
Else
For j = 1 To UBound(Диапазон, 1)
For i = 1 To UBound(Диапазон, 2)
If Len(Диапазон(j, i)) Then k = k + 1: arr(k) = Диапазон(j, i)
Next: Next
End If
ReDim Preserve arr(1 To k)
СЦЕПДИАП_A = Join(arr, Разделитель)
СЦЕПДИАП_A = Application.Trim(СЦЕПДИАП_A)
End Function

Далее вернуться к странице excel и там в нужной ячейке вписать формулу =СЦЕПДИАП_A(ваш диапазон)

Функции Excel ЕСЛИ (IF) и ЕСЛИМН (IFS) для нескольких условий

Логическая функция ЕСЛИ в Экселе – одна из самых востребованных. Она возвращает результат (значение или другую формулу) в зависимости от условия.

Функция ЕСЛИ в Excel

Функция имеет следующий синтаксис.

ЕСЛИ(лог_выражение; значение_если_истина; [значение_если_ложь])

лог_выражение – это проверяемое условие. Например, A2 30) не выполняется и возвращается альтернативное значение, указанное в третьем поле. В этом вся суть функции ЕСЛИ. Протягивая расчет вниз, получаем результат по каждому товару.

Однако это был демонстрационный пример. Чаще формулу Эксель ЕСЛИ используют для более сложных проверок. Допустим, есть средненедельные продажи товаров и их остатки на текущий момент. Закупщику нужно сделать прогноз остатков через 2 недели. Для этого нужно от текущих запасов отнять удвоенные средненедельные продажи.

Пока все логично, но смущают минусы. Разве бывают отрицательные остатки? Нет, конечно. Запасы не могут быть ниже нуля. Чтобы прогноз был корректным, нужно отрицательные значения заменить нулями. Здесь отлично поможет формула ЕСЛИ. Она будет проверять полученное по прогнозу значение и если оно окажется меньше нуля, то принудительно выдаст ответ 0, в противном случае — результат расчета, т.е. некоторое положительное число. В общем, та же логика, только вместо значений используем формулу в качестве условия.

В прогнозе запасов больше нет отрицательных значений, что в целом очень неплохо.

Формулы Excel ЕСЛИ также активно используют в формулах массивов. Здесь мы не будем далеко углубляться. Заинтересованным рекомендую прочитать статью о том, как рассчитать максимальное и минимальное значение по условию. Правда, расчет в той статье более не актуален, т.к. в Excel 2016 появились функции МИНЕСЛИ и МАКСЕСЛИ. Но для примера очень полезно ознакомиться – пригодится в другой ситуации.

Формула ЕСЛИ в Excel – примеры нескольких условий

Довольно часто количество возможных условий не 2 (проверяемое и альтернативное), а 3, 4 и более. В этом случае также можно использовать функцию ЕСЛИ, но теперь ее придется вкладывать друг в друга, указывая все условия по очереди. Рассмотрим следующий пример.

Нескольким менеджерам по продажам нужно начислить премию в зависимости от выполнения плана продаж. Система мотивации следующая. Если план выполнен менее, чем на 90%, то премия не полагается, если от 90% до 95% — премия 10%, от 95% до 100% — премия 20% и если план перевыполнен, то 30%. Как видно здесь 4 варианта. Чтобы их указать в одной формуле потребуется следующая логическая структура. Если выполняется первое условие, то наступает первый вариант, в противном случае, если выполняется второе условие, то наступает второй вариант, в противном случае если… и т.д. Количество условий может быть довольно большим. В конце формулы указывается последний альтернативный вариант, для которого не выполняется ни одно из перечисленных ранее условий (как третье поле в обычной формуле ЕСЛИ). В итоге формула имеет следующий вид.

Комбинация функций ЕСЛИ работает так, что при выполнении какого-либо указанно условия следующие уже не проверяются. Поэтому важно их указать в правильной последовательности. Если бы мы начали проверку с B2 =1. Однако этого можно избежать, если в поле с условием написать ИСТИНА, указывая тем самым, что, если не выполняются ранее перечисленные условия, наступает ИСТИНА и возвращается последнее альтернативное значение.

Теперь вы знаете, как пользоваться функцией ЕСЛИ в Excel, а также ее более современным вариантом для множества условий ЕСЛИМН.

Skip to content

Поиск ВПР нескольких значений по нескольким условиям

В статье показаны способы поиска (ВПР) нескольких значений в Excel на основе одного или нескольких условий и возврата нескольких результатов в столбце, строке или в отдельной ячейке.

При использовании Microsoft Excel для анализа данных вы часто можете оказаться в ситуации, когда вам нужно получить все совпадающие значения для определенного имени, наименования, артикула или какого-либо другого уникального идентификатора. Первое решение, которое приходит на ум, — это использование функции Excel ВПР (VLOOKUP). Но проблема в том, что она может возвращать только одно значение.

Поиск нескольких значений в Excel может быть выполнен с помощью совместного использования ряда функций. Если вы не являетесь экспертом в Excel, не спешите покидать эту страницу. Я постараюсь объяснить логику поиска, чтобы даже новичок мог понять формулы и настроить их для решения подобных задач. 

Поиск нескольких позиций в Excel с помощью формулы

Как было сказано ранее, невозможно заставить функцию ВПР Excel возвращать несколько значений. Проблему можно решить, используя следующие функции в формуле массива:

  • ЕСЛИ – оценивает условие и возвращает одно значение, если условие выполняется, и другое значение, если условие не выполняется.
  • НАИМЕНЬШИЙ– получает N-е наименьшее значение в массиве.
  • ИНДЕКС — возвращает элемент массива на основе указанных вами номеров строк и столбцов.
  • СТРОКА — возвращает номер строки.
  • СТОЛБЕЦ — возвращает номер столбца.
  • ЕСЛИОШИБКА – перехватывает ошибки.

Ниже вы найдете несколько примеров таких формул. Их часто называют формулами ВПР нескольких значений, хотя сама функция ВПР здесь не используется. Дело в том, что часто под термином ВПР подразумевают любой поиск в Excel, какими бы формулами и функциями он ни осуществлялся.

Поиск нескольких значений и возврат результатов в столбец

Допустим, у вас есть имена продавцов в столбце А и товары, которые они продали, в столбце В. Таблица содержит несколько записей для каждого продавца. Ваша цель — получить список всех товаров, относящихся к данному человеку. Чтобы это сделать, выполните следующие действия:

  1. Введите список имен продавцов в какую-нибудь пустую строку того же или другого рабочего листа. В этом примере имена вводятся в ячейки D2:H2:

СоветЧтобы быстро записать все имеющиеся в списке имена, вы можете использовать эту инструкцию —  как получить список уникальных значений в Excel.

  1. Под именем выберите количество пустых ячеек, равное или превышающее максимально возможное количество совпадений, введите одно из следующих выражений и нажмите Ctrl + Shift + Enter для ввода его как формулы массива (в этом случае вы сможете редактировать формулу только сразу во всем диапазоне, где она введена). Или же вы можете записать это в левую верхнюю ячейку, также использовав Ctrl + Shift + Enter, а затем перетащить вниз еще на несколько ячеек (в этом случае вы сможете редактировать формулу в каждой ячейке отдельно).

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13)-2;»»); СТРОКА()-2));»»)

или

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;»»); СТРОКА()-2));»»)

Как видите,  первая формула немного компактнее, а вторая более универсальна и требует меньше модификаций (подробнее о синтаксисе и логике мы поговорим чуть дальше).

  1. Скопируйте формулу в соседние столбцы справа. Для этого перетащите маркер заполнения (небольшой квадрат в правом нижнем углу выбранного диапазона) вправо.

Результат ВПР нескольких значений в столбце будет выглядеть примерно так:

Здесь мы использовали первую формулу:

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13)-2;»»); СТРОКА()-2));»»)

Как это работает.

Это пример использования Excel от среднего до продвинутого уровня, который подразумевает базовые знания формул массива и функций Excel. Итак, разберём пошагово:

  1. Функция ЕСЛИ

В основе поиска – функция ЕСЛИ, чтобы получить позиции всех вхождений искомого значения в диапазоне поиска: ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13) )-2;»»)

ЕСЛИ сравнивает искомое значение (D2) с каждым значением в диапазоне поиска (A3:A13) и, если совпадение найдено, возвращает относительную позицию строки; пустое значение («») в противном случае.

Относительная позиция вычисляется путем вычитания 2 из СТРОКА($B$3:$B$13), чтобы первая позиция с формулой имела порядковый номер 1 (то есть, 3-2=1). Если ваш диапазон вывода начинается со строки 2, тогда вычтите 1 и так далее. Результатом этой операции является массив {1;2;3;4;5;6;7;8;9;10;11}, который поступает в аргумент значение_если_истина функции ЕСЛИ.

Вместо приведенного выше вычисления вы можете использовать следующее выражение:

СТРОКА(столбец_просмотра) — МИН(СТРОКА(столбец_просмотра))+1

Оно возвращает тот же результат, но не требует каких-либо изменений независимо от местоположения возвращаемого столбца. В этом примере это будет СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1.

Итак, на данный момент у вас есть массив, состоящий из чисел (позиций совпадений) и пустых строк (несовпадений). Для ячейки D3 в этом примере у нас есть следующий массив:

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ({1:»»:»»:»»:5:»»:»»:8:»»:»»:»»}; СТРОКА()-2));»»)

Если вы сверитесь с исходными данными, вы увидите, что «Сергей» (значение поиска в D2) появляется на 1- й , 5 -й и 8 -й позициях в диапазоне поиска (A3: A13).

  1. Функция НАИМЕНЬШИЙ

Затем вступает в действие функция НАИМЕНЬШИЙ(массив; k), чтобы определить, какие совпадения должны быть возвращены в конкретной ячейке.

С уже установленным в предыдущем шаге массивом давайте определим аргумент k , т. е. k-е наименьшее возвращаемое значение. Для этого вы делаете своего рода «инкрементный счетчик» СТРОКА()-n, где «n» — это номер строки первой ячейки формулы минус 1. В этом примере мы ввели формулу в ячейки D3:D7, поэтому СТРОКА()-2 возвращает «1» для ячейки D3 (строка 3 минус 2), «2» для ячейки D4 (строка 4 минус 2) и т. д.

В результате функция НАИМЕНЬШИЙ извлекает первый наименьший элемент массива в ячейку D3, второй наименьший элемент в ячейку D4 и так далее. И это превращает первоначальную длинную и сложную формулу в очень простую, например:

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;{1});»»)

СоветЧтобы увидеть значение, вычисленное определенной частью формулы, выделите эту часть в самой формуле и нажмите F9.

  1. Функция ИНДЕКС

Здесь все просто. Вы используете функцию ИНДЕКС, чтобы вернуть значение элемента массива на основе его номера.

  1. Функция ЕСЛИОШИБКА 

И, наконец, вы оборачиваете формулу в функцию ЕСЛИОШИБКА для обработки возможных ошибок, которые неизбежны, потому что вы не можете знать, сколько совпадений будет возвращено для того или иного искомого значения. Ведь вы копируете формулу в число ячеек явно большее, чем количество возможных совпадений, то есть «с запасом». Чтобы не пугать пользователей кучей ошибок, просто замените их пустой строкой (пустой ячейкой).

Примечание. Обратите внимание на правильное использование абсолютных и относительных ссылок на ячейки в формуле. Все ссылки фиксированы, за исключением ссылки на относительный столбец в искомом значении (D$2), которая должна изменяться в зависимости от относительного положения столбцов, в которые копируется формула, чтобы возвращать совпадения для других имён.

На скриншоте ниже вы можете видеть, как работает вторая формула

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;»»); СТРОКА()-2));»»)

Обобщив эти два решения, мы получим следующие общие формулы для ВПР нескольких значений в Excel, которые будут выведены в столбец:

Вариант 1 :

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТРОКА()-n));»»)

Вариант 2:

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений;НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений;СТРОКА(диапазон_искомых_значений)-МИН(СТРОКА(диапазон_искомых_значений))+1;»»); СТРОКА()-n));»»)

где:

  • m — номер строки первой ячейки в возвращаемом диапазоне минус 1.
  • n — номер строки первой ячейки с формулой минус 1.

Примечание. В приведенном выше примере и n, и m равны 2, потому что наш диапазон возвращаемых значений начинается, да и сама формула расположена, в строке 3. В ваших таблицах Эксель это вполне могут быть и другие числа.

Поиск нескольких совпадений и возврат результатов в строке

Если вы хотите вернуть несколько найденных значений в строках, а не в столбцах, измените приведенные выше формулы Excel следующим образом:

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ($D3=$A$3:$A$13;СТРОКА($B$3:$B$13)-2;»»); СТОЛБЕЦ()-4));»»)

или

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ($D3=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;»»);СТОЛБЕЦ()-4)); «»)

Как и в предыдущем примере, обе они являются формулами массива, поэтому не забудьте нажать комбинацию Ctrl + Shift + Enter, чтобы записать их правильно.

Формулы работают с той же логикой, что и в предыдущем примере, за исключением того, что вы используете функцию СТОЛБЕЦ вместо СТРОКА. Чтобы определить, какое совпадающее значение должно быть возвращено в конкретной ячейке, используем: СТОЛБЕЦ()-n где n — номер столбца первой ячейки, в которую вводится формула, минус 1. В этом примере результаты выводятся в диапазон E2:H2. Поскольку E является пятым столбцом, n равно 4  (5-1=4).

Примечание. Чтобы формула правильно копировалась вправо и вниз, обратите внимание на ссылки на значения поиска, где используется абсолютный адрес столбца и относительный адрес строки, например $D3.

И вот общие формулы для ВПР в Excel нескольких значений, возвращаемых по строке:

Формула 1 :

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТОЛБЕЦ()-n));»»)

Формула 2:

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений;НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений;СТРОКА(диапазон_искомых_значений)-МИН(СТРОКА(диапазон_искомых_значений))+1;»»); СТОЛБЕЦ()-n));»»)

где:

  • m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
  • n — номер столбца первой ячейки, в которой записана формула, минус 1.

Поиск нескольких значений на основе нескольких условий

Вы уже знаете, как выполнять поиск нескольких значений в Excel на основе одного условия. Но что, если вы хотите вернуть несколько совпадений сразу на основе двух или более критериев? Продолжая предыдущие примеры – что, если у вас в таблице есть дополнительный столбец «Месяц» и вы хотите получить список всех товаров, проданных конкретным продавцом в определенном месяце?

Если вы знакомы с формулами массивов, то, возможно, помните, что они позволяют использовать знак умножения (*) в качестве логического оператора И. Таким образом, вы можете просто взять выражения, рассмотренные в двух предыдущих примерах, и заставить их проверять несколько условий, как показано ниже.

Как вернуть несколько значений в столбце.

Выведем искомые значения, соответствующие одновременно нескольким условиям, в привычном нам виде – вертикально в одном столбце.

В общем виде это выглядит так:

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(1=((—(искомое_значение1 = диапазон_искомых_значений1)) * (—(искомое_значение2 = диапазон_искомых_значений2))) ; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТРОКА()-n));»»)

где:

  • m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
  • n — номер строки первой слева ячейки с формулой, минус 1.

Предположим, что список продавцов (диапазон_искомых_значений1) находится в A3:A30, список месяцев (диапазон_искомых_значений2) находится в B3: B30, интересующий продавец (искомое_значение1) указан в ячейке E3, а нужный месяц (искомое_значение2) – в ячейке F3. Тогда формула поиска принимает следующий вид:

=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E$3=$A$3:$A$30))*(—($F$3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТРОКА()-2));»»)

Таким образом, мы вводим имя в E3, месяц в F3, и получаем список товаров в столбце G:

Как вернуть несколько результатов в строке.

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

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(1=((—(искомое_значение1 = диапазон_искомых_значений1)) * (—(искомое_значение2 = диапазон_искомых_значений2))) ; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТОЛБЕЦ()-n));»»)

где:

  • m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
  • n — номер столбца первой слева ячейки, в которой записана формула, минус 1.

Для нашего примера набора данных формула выглядит следующим образом:

=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E3=$A$3:$A$30))*(—($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТОЛБЕЦ()-6));»»)

И результат ВПР нескольких значений по нескольким условиям может выглядеть так:

Аналогичным образом вы можете выполнять ВПР с тремя, четырьмя и более условиями.

Как это работает?

По сути, формулы для ВПР нескольких значений с несколькими условиями работают с уже знакомой логикой, объясненной в самом первом нашем примере. Единственное отличие состоит в том, что функция ЕСЛИ теперь проверяет несколько условий:

1=((—(искомое_значение1 = диапазон_искомых_значений1)) * (—(искомое_значение2 = диапазон_искомых_значений2)) * …..)

Результатом каждого сравнения (искомое_значение = диапазон_искомых_значений) является массив логических значений ИСТИНА (условие выполнено) и ЛОЖЬ (условие не выполнено). Двойное отрицание (—) переводит логические значения в единицы и нули. А поскольку умножение на ноль всегда дает ноль, в правой части этого равенства у вас будет получаться 1 только для тех элементов, которые удовлетворяют всем указанным вами условиям. 

Вы просто сравниваете окончательный массив нулей и единиц с числом 1, чтобы функция СТРОКА вернула порядковые номера строк, удовлетворяющих всем условиям, в противном случае — пустоту.

Напоминание. Все формулы поиска, обсуждаемые в этой статье, являются формулами массива. Таким образом, каждая из них перебирает все элементы массива каждый раз, когда исходные данные изменяются или рабочий лист пересчитывается. На больших листах, содержащих сотни или тысячи позиций, это может значительно замедлить работу Excel.

Как вернуть несколько значений ВПР в одну ячейку

Мы продолжаем работать с набором данных, который использовали в предыдущем примере. Но на этот раз мы хотим добиться другого результата — вместо того, чтобы извлекать несколько совпадений в отдельные ячейки, мы хотим, чтобы они отображались в одной текстовой ячейке, разделенные запятой, пробелом или другим разделителем по вашему выбору.

Используем выражение, которое мы рассматривали чуть выше и которая позволяет получить несколько результатов ВПР с условиями в одной строке:

=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E3=$A$3:$A$30))*(—($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТОЛБЕЦ()-6));»»)

Внесем в нее небольшие изменения.

Чтобы обработать сразу несколько результатов, в функцию СТОЛБЕЦ добавим аргумент – диапазон ячеек, в который мы ранее копировали формулу. То есть, вместо СТОЛБЕЦ() у нас теперь будет СТОЛБЕЦ(G3:K3). Это позволит формуле массива получить сразу несколько номеров столбцов.

Затем применим крайне полезную при работе с текстовыми значениями функцию ОБЪЕДИНИТЬ (доступна в Excel 2019 и более поздних версиях). Она позволит нам объединить несколько текстовых значений, отделив их друг от друга выбранным нами разделителем. К примеру, запятой с пробелом после нее.

Вот что у нас получится:

=ОБЪЕДИНИТЬ(«, «; ИСТИНА; ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E3=$A$3:$A$30))*(—($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТОЛБЕЦ(G3:K3)-6));»»))

И видим результат ВПР нескольких значений в одной ячейке на этом скриншоте:

Еще один, более простой вариант, чтобы подтянуть несколько значений и вывести результат в одной ячейке:

=ОБЪЕДИНИТЬ(«, «;ИСТИНА;ЕСЛИ(($A$3:$A$30=E3)*($B$3:$B$30=F3)=1;$C$3:$C$30;»»))

Ее также нужно вводить как формулу массива:

Как найти несколько значений без дубликатов

А если так случится, что в результатах поиска будет несколько одинаковых значений? Пример таких данных вы можете видеть на скриншоте ниже. Естественно, выводить в ячейке несколько дубликатов было бы не совсем хорошо.

Если вы хотите получить в одной ячейке результаты поиска нескольких значений без повторов, попробуйте так:

=ОБЪЕДИНИТЬ(«, «; ИСТИНА; ЕСЛИ(ЕСЛИОШИБКА(ПОИСКПОЗ($C$3:$C$13; ЕСЛИ(E3=$A$3:$A$13; $C$3:$C$13; «»); 0);»»)=ПОИСКПОЗ(СТРОКА($C$3:$C$13); СТРОКА($C$3:$C$13)); $C$3:$C$13; «»))

Вставьте это выражение в нужную ячейку, не забыв завершить ввод комбинацией Ctrl+Shift+Enter, так как это формула массива. Затем можете скопировать вниз по столбцу, чтобы получить данные по другим критериям выбора.

Как видите, мы получили в одной ячейке несколько значений, среди которых нет одинаковых, хотя в исходных данных таковые имеются.

Надеюсь, эти примеры будут вам полезны для поиска сразу нескольких значений в Excel.  Благодарю вас за чтение.

Функция ЕСЛИОШИБКА – примеры формул В статье описано, как использовать функцию ЕСЛИОШИБКА в Excel для обнаружения ошибок и замены их пустой ячейкой, другим значением или определённым сообщением. Покажем примеры, как использовать функцию ЕСЛИОШИБКА с функциями визуального…
5 способов – поиск значения в массиве Excel В статье предлагается несколько различных формул для выполнения поиска в двумерном массиве значений Excel.  Просмотрите эти варианты и выберите наиболее для вас подходящий. При поиске данных в электронных таблицах Excel…
Поиск ИНДЕКС ПОИСКПОЗ по нескольким условиям В статье показано, как выполнять быстрый поиск с несколькими условиями в Excel с помощью ИНДЕКС и ПОИСКПОЗ. Хотя Microsoft Excel предоставляет специальные функции для вертикального и горизонтального поиска, опытные пользователи…
ИНДЕКС ПОИСКПОЗ как лучшая альтернатива ВПР В этом руководстве показано, как использовать ИНДЕКС и ПОИСКПОЗ в Excel и чем они лучше ВПР. В нескольких недавних статьях мы приложили немало усилий, чтобы объяснить основы функции ВПР новичкам и предоставить…
Поиск в массиве при помощи ПОИСКПОЗ В этой статье объясняется с примерами формул, как использовать функцию ПОИСКПОЗ в Excel.  Также вы узнаете, как улучшить формулы поиска, создав динамическую формулу с функциями ВПР и ПОИСКПОЗ. В Microsoft…
Функция ИНДЕКС в Excel — 6 примеров использования В этом руководстве вы найдете ряд примеров формул, демонстрирующих наиболее эффективное использование ИНДЕКС в Excel. Из всех функций Excel, возможности которых часто недооцениваются и используются недостаточно, ИНДЕКС определенно занимает место…
Как объединить две или несколько таблиц в Excel В этом руководстве вы найдете некоторые приемы объединения таблиц Excel путем сопоставления данных в одном или нескольких столбцах. Как часто при анализе в Excel вся необходимая информация собирается на одном…
Вычисление номера столбца для извлечения данных в ВПР Задача: Наиболее простым способом научиться указывать тот столбец, из которого функция ВПР будет извлекать данные. При этом мы не будем изменять саму формулу, поскольку это может привести в случайным ошибкам.…

Like this post? Please share to your friends:
  • Excel функция непустые ячейки
  • Excel функция неповторяющиеся значения
  • Excel функция начатый месяц
  • Excel функция наклон это
  • Excel функция найти символ