Конкатенация excel как сделать

Обновлено: 06.07.2024

Где (Тест, ДатаА, ДатаБ, ДатаВ) это, переменные в которые подставляются данные из кода.

func(152; Тест <> 106; ДатаА + 9 Отслеживать

@vikttur func(152; Тест <> 106; ДатаА +" & А7 & " Сделал так но к сожалению не работает :( По прежнему A7 и A8 являться просто текстом, а не ячейкой.

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2022.1.26.41266

Что нужно сделать, чтобы соединить в Excel текст из разных ячеек? Для выполнения этой работы в Excel есть специальная функция, которая называется CONCATENATE (СЦЕПИТЬ). Данная функция находится во вкладке Формулы в разделе Текстовая:


Давайте рассмотрим как она работает. Сначала выбираем функцию и вводим в нее значение:


И получаем следующий результат:


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

Еще существует и другой способ соединить текст - это использовать специальный символ, который называется "амперсанд" (&):

Я поддерживаю приложение, написанное в Microsoft Access с помощью VBA.

Я просматриваю свой код и только что заметил, что подсознательно соединяю строки вместе с символом плюс (+) вместо амперсанда. Прошло несколько лет с тех пор, как я закодировал VB6. Может ли это вызвать какие-либо проблемы?

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

Амперсанд явно является строковой операцией, а плюс перегружен:

При использовании с цифрами добавляется знак плюса.

Некоторые примеры из непосредственного окна VBA (разница между третьим и четвертым особенно раздражает):

Операторы объединения объединяют несколько строк в одну. Concatenation operators join multiple strings into a single string. Существует два оператора объединения: + и & . There are two concatenation operators, + and & . Оба они выполняют базовую операцию объединения, как показано в следующем примере. Both carry out the basic concatenation operation, as the following example shows.

Эти операторы также могут объединять переменные String , как показано в следующем примере. These operators can also concatenate String variables, as the following example shows.

Различия между двумя операторами объединения Differences Between the Two Concatenation Operators

Оператор + имеет основную цель сложения двух чисел. The + Operator has the primary purpose of adding two numbers. Однако он также может объединять числовые операнды со строковыми. However, it can also concatenate numeric operands with string operands. Оператор + имеет сложный набор правил, определяющий, следует ли выполнять добавление, объединение, сигнализировать об ошибке компилятора или выдавать исключение времени выполнения InvalidCastException. The + operator has a complex set of rules that determine whether to add, concatenate, signal a compiler error, or throw a run-time InvalidCastException exception.

Оператор & определен только для операндов String и всегда расширяет его операнды до String , независимо от значения Option Strict . The & Operator is defined only for String operands, and it always widens its operands to String , regardless of the setting of Option Strict . Оператор & рекомендуется использовать для объединения строк, так как он определен исключительно для строк и снижает шансы создания непреднамеренного преобразования. The & operator is recommended for string concatenation because it is defined exclusively for strings and reduces your chances of generating an unintended conversion.

Операторы сравнения

Обычно операции сравнения используются в операторах организации циклов для принятия какого-либо решения о дальнейшем ходе выполнения операций.

Результатом любой операции сравнения является значение типа Boolean: True, False.

Если оба операнда в выражении сравнения имеют один и тот же тип данных, VBA выполняет простое сравнение для этого типа.

Если один или оба операнда в выражении сравнения являются переменными типа Variant, VBA пытается преобразовать тип Variant в какой-либо совместимый тип.

Сравнение строк

При сравнении строк операторами отношения, VBA сравнивает каждую строку слева направо посимвольно.

Следует быть внимательным при сравнении строк переменной длины.

Двоичное и текстовое сравнение строк

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

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

Для выбора метода сравнения строк используется директива Option Compare

Option Compare [Text | Binary]

Данная директива должна находиться в области объявления модуля.

Конкатенация строк

Присоединение одной строки к другой называется конкатенацией строк.

Оператор конкатенации (&)

Оператор (&)в VBA используется только для конкатенации строк.

Операнд_1 & Операнд_2 [& Операнд_3..]

Операнд_N — любое допустимое строковое или численное выражение (которое преобразуется в строковое).

Тип данных результата конкатенации строк — String.

Если операнд в выражении конкатенации строк имеет значение Empty или Null, VBA интерпретирует этот операнд как строку нулевой длины (строка не содержащая символов).

Обратите внимание! Символ (&) операции конкатенации обязательно необходимо отделять пробелом от имени переменной, т.к. в противном случае VBA может интерпретировать этот символ как символ определения типа Long.

Оператор сложения в конкатенации строк

Для конкатенации строк можно также использовать оператор (+).

Этот оператор имеет такой же синтаксис и требования, как и оператор (&). Однако следует понимать, что в VBA основное предназначение оператора (+) — это арифметическое сложение. Поэтому, чтобы избежать двусмысленности чтения программного кода, для конкатенации строк настоятельно рекомендуется использовать именно оператор (&).

Приоритеты выполнения операций

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

Функция конкатенации в Excel используется для объединения или объединения двух или более чем двух символов, строк или чисел, функция конкатенации заменяет использование оператора & для соединения, поскольку операторы & сделали синтаксис более сложным, в то время как функция конкатенации выглядит более чистой и Легко понять.

Синтаксис

Аргументы, кроме первого, необязательны; поэтому они заключены в квадратные скобки.

Как использовать функцию CONCATENATE в Excel? (с примерами)

CONCATENATE очень прост и удобен в использовании. Давайте разберемся с работой CONCATENATE в Excel на нескольких примерах.

Вы можете скачать этот шаблон Excel с функцией CONCATENATE здесь — Шаблон Excel с функцией CONCATENATE

Например, если у нас есть список имен и фамилий в столбцах A и B, и мы хотим, чтобы полное имя, которое является первым именем вместе с фамилией в столбце C, мы будем использовать функцию CONCATENATE.

CONCATENATE объединил текст ячейки A2 с текстом в ячейке B2, но полное имя будет более читабельным, если оно содержит пробел между именем и фамилией.

Итак, в этом случае мы можем увеличить количество переданных аргументов вместо двух до трех, поместив второй аргумент между текстовым значением в A2 и B2. Второй аргумент, который мы будем использовать, — это строковый литерал с пробелом в двойных кавычках.

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

Таким образом, вы можете видеть, когда мы передаем аргумент, отличный от ссылочного значения, и мы всегда должны заключать его в двойные кавычки, потому что MS-Excel и другие офисные пакеты написаны на C ++, а в C ++ строковые литералы всегда берутся в двойных кавычках.

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

У нас есть три таблицы со списком сотрудников. В первой таблице у нас есть их имя и идентификатор сотрудника, во второй таблице у нас есть их имена, не упорядоченные в порядке, как указано в таблице 1, и их адресное название города, а в третьей таблице у нас есть имена, не упорядоченные в порядке, указанном в таблицах 1 и 2. В третьей таблице мы хотим показать идентификаторы сотрудников, соединенные с их городом и разделенные дефисом.

Мы хотим, чтобы идентификатор сотрудника и город были вместе, но имена не находятся в одном порядке во всех трех таблицах, поэтому мы не можем напрямую использовать функцию CONCATENATE в Excel и передавать справочные значения. Если мы это сделаем, это займет много времени и сопоставления. Итак, чтобы выполнить эту задачу эффективно, мы можем использовать функцию VLOOKUP для поиска идентификатора сотрудника и города и СЦЕПИТЬ возвращенные значения.

Итак, мы будем использовать формулу CONCATENATE в Excel в ячейке I2.

= СЦЕПИТЬ (ВПР (H2; $ A $ 1: $ B $ 11,2,0), ”-“, ВПР (H2, $ D $ 1: $ E $ 11,2,0))

Перетаскивая формулу CONCATENATE в excel вниз и применяя ее к каждой ячейке, которую мы имеем

Вывод:

Excel также использует амперсанд (&) в качестве оператора конкатенации, и мы можем использовать его вместо функции конкатенации excel также с той же функциональностью и гораздо более простым способом.

Обратная конкатенация

Если мы хотим разделить сцепленные значения или если мы хотим разделить текст на отдельные ячейки, в этом случае мы можем использовать функцию разделителя текста в столбец, доступную в Excel. Например, если мы хотим, чтобы идентификатор сотрудника и название города были разделены в ячейках по столбцу, мы можем открыть Мастер преобразования текста в столбец (ярлык alt-> ae ), тогда выбирай С разделителями введите Далее> и выберите разделитель из списка (табуляция, точка с запятой, запятая, пробел), если какой-либо другой разделитель проверяет другое: укажите и выберите общий для текстовых значений и введите Конец. Например, мы хотим разделить CONCATENATE и функцию

  • Шаг 2: выберите разделитель из списка (табуляция, точка с запятой, запятая, пробел); если есть другой разделитель, отметьте другое: и укажите
  • Шаг 3: выберите общие для текстовых значений и введите Готово.

Ограничения

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

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

Чтобы преодолеть это ограничение, в последней версии Excel была введена новая функция под названием TEXTJOIN. Он также СЦЕПЛЯЕТ текстовые значения, но гораздо проще, занимая диапазон значений, которые нужно объединить (A2: A14), вместо того, чтобы указывать каждое значение одно за другим. В качестве первого аргумента используется разделитель, а второй аргумент проверяет наличие пустой ячейки; если ячейка пуста, она принимает значение ИСТИНА и игнорирует их, а другие аргументы принимают диапазон значений, которые необходимо СЦЕПИТЬ.

Читайте также: