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.

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

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


В одной ячейке можно отобразить 2 значения. На самом деле, это конечно будет одно текстовое значение, но визуально выглядит как два.

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

Пусть дана таблица

Продажи

и

Изменение объема продаж к предыдущему кварталу

(см.

файл примера

).

Создадим таблицу

Объем продаж и его изменение,

в ячейках которой будем отображать само значение продаж и его изменение.

Добиться такого результата можно с помощью формулы:

=C3&СИМВОЛ(10)&ТЕКСТ(C10;»+0,0%;-0,0%;0,0%»)


СИМВОЛ(10)

«Перевод строки» – заставляет отображаться следующее за ним текстовое значение на новой строке.

Формат

«+0,0%;-0,0%;0,0%»

в функции

ТЕКСТ()

задает отображение изменения объема продаж.

В формате ячейки должен быть установлен признак «Перенос текста» (см. вкладку Главная, группа Выравнивание), иначе вместо спецсимвола «Перевод строки» будет отображен квадратик с вопросиком, а текст будет выведен в одну строку.

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

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

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

Вот и решил написать небольшую функцию пользователя на 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, а также ее более современным вариантом для множества условий ЕСЛИМН.

Хитрости »

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


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

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

Понравилась статья? Поделить с друзьями:
  • Excel несколько если подряд
  • Excel несколько диаграмм на одной оси
  • Excel несколько графиков на одной оси
  • Excel несколько вариантов функций если
  • Excel несбалансированные транспортные задачи