Объединение текста и чисел
Предположим, что для подготовки массовой рассылки необходимо создать правильное предложение из нескольких столбцов данных. Или, возможно, вам нужно отформатирование чисел с текстом, не влияя на формулы, в которые эти числа используются. В Excel есть несколько способов объединения текста и чисел.
Отображение текста до или после числа в ячейке с помощью числового формата
Если столбец, который вы хотите отсортировать, содержит как числа, так и текст, например Product #15, Product #100, Product #200, он может отсортироваться не так, как вы ожидали. Ячейки, содержащие 15, 100 и 200, можно отформатирование таким образом, чтобы они появлялись на #15, product #100 и Product #200.
Используйте пользовательский числовом формате для отображения числа с текстом, не изменяя при этом поведение сортировки числа. Таким образом вы можете изменить способ их изменения, не изменяя значение.
Сделайте следующее:
Выделите ячейки, которые нужно отформатировать.
На вкладке Главная в группе Число щелкните стрелку .
В списке Категория выберите категорию, например Настраиваемые, и выберите встроенный формат, похожий на нужный.
В поле Тип введите коды числов, чтобы создать нужный формат.
Чтобы в ячейке отображался как текст, так и числа, заключив текстовые символы в двойные кавычка (» «) или перед числами, заключив их в обратное начертение (\).
ПРИМЕЧАНИЕ. При редактировании встроенного формата формат не удаляется.
|
Для отображения |
Используйте код |
Как это работает |
|---|---|---|
|
12 в качестве #12 |
«Product # » 0 |
Текст в кавычках (включая пробел) отображается перед числом в ячейке. В коде «0» представляет число в ячейке (например, 12). |
|
12:00 по 12:00 по 00:00 по EST |
ч:мм AM/PM «EST» |
Текущее время отображается с использованием формата даты и времени ч:мм. |
|
-12 из -12,00 долларов США за недостаток и 12 — из-за избыток 12,00 долларов США |
$Избыток» 0,00 долларов США;»Недостаток» — 0,00 долларов США |
Значение отображается в формате валюты. Кроме того, если ячейка содержит положительное значение (или 0), после него отображается значение «Избыток». Если ячейка содержит отрицательное значение, вместо нее отображается значение «Недостаток». |
Объединение текста и чисел из разных ячеек в одной ячейке с помощью формулы
Когда числа и текст объединяются в ячейке, они становятся текстом и перестают работать как числовое значение. Это означает, что с ними больше нельзя выполнять математические операции.
Для объединения чисел используйте функции СОВМЕЩАТЬ или СОВМЕЩАТЬ, ТЕКСТ или ОБЪЕДИНИТЬ, а также оператор амперсанд (&).
Примечания:
-
В Excel 2016, Excel Mobile и Excel в Интернетефункция С ФУНКЦИИ СОВМЕСТИТЬ была заменена функцией СОВМЕСТИМ. Несмотря на то что функция С ФУНКЦИИ СОВМЕСТИТЬ по-прежнему доступна для обратной совместимости, следует использовать функцию СОВМЕСТИМАЯ, так как функция С ФУНКЦИИ СОВМЕСТИМАЯ может быть недоступна в будущих версиях Excel.
-
Объединить объединяет текст из нескольких диапазонов или строк и содержит между текстовыми значениями, которые будут объединены. Если в качестве разделителя используется пустая текстовая строка, функция эффективно объединит диапазоны.
В Excel 2013 и предыдущих версиях эта Excel 2013 недоступна.
Примеры
На рисунке ниже приведены различные примеры.
Внимательно посмотрите на использование функции ТЕКСТ во втором примере на рисунке. Если вы присоедините число к текстовой строке с помощью оператора секаций, используйте функцию ТЕКСТ для управления тем, как число отображается. В формуле используется значение из ячейки, на которые ссылается ссылка (в данном примере — 0,4), а не отформатированные значения, которые вы видите в ячейке (40 %). Для восстановления числового форматирования используется функция ТЕКСТ.
Дополнительные сведения
См. также
-
Функция СЦЕПИТЬ
-
СЦЕП
-
ТЕКСТ
-
Функция TEXTJOIN
3 способа склеить текст из нескольких ячеек
6601 28.10.2012 Скачать пример
Надпись на заборе: «Катя + Миша + Семён + Юра + Дмитрий Васильевич +
товарищ Никитин + рыжий сантехник + Витенька + телемастер Жора +
ещё 19 мужиков + муж = любовь!»
Способ 1.
Функции СЦЕПИТЬ, СЦЕП и ОБЪЕДИНИТЬВ категории Текстовые есть функция СЦЕПИТЬ (CONCATENATE), которая соединяет содержимое нескольких ячеек (до 255) в одно целое, позволяя комбинировать их с произвольным текстом. Например, вот так:
Нюанс: не забудьте о пробелах между словами — их надо прописывать как отдельные аргументы и заключать в скобки, ибо текст.
Очевидно, что если нужно собрать много фрагментов, то использовать эту функцию уже не очень удобно, т.к. придется прописывать ссылки на каждую ячейку-фрагмент по отдельности. Поэтому, начиная с 2016 версии Excel, на замену функции
Для массового объединения также удобно использовать новую функцию ОБЪЕДИНИТЬ (TEXTJOIN), появившуюся начиная с Excel 2016.
У нее следующий синтаксис:
=ОБЪЕДИНИТЬ(Разделитель; Пропускать_ли_пустые_ячейки; Диапазон1; Диапазон2 … )
где
- Разделитель — символ, который будет вставлен между фрагментами
- Второй аргумент отвечает за то, нужно ли игнорировать пустые ячейки (ИСТИНА или ЛОЖЬ)
- Диапазон 1, 2, 3 … — диапазоны ячеек, содержимое которых хотим склеить
Например:
Способ 2. Символ для склеивания текста (&)
Это универсальный и компактный способ сцепки, работающий абсолютно во всех версиях Excel.
Для суммирования содержимого нескольких ячеек используют знак плюс «+«, а для склеивания содержимого ячеек используют знак «&» (расположен на большинстве клавиатур на цифре «7»). При его использовании необходимо помнить, что:
- Этот символ надо ставить в каждой точке соединения, т.
е. на всех «стыках» текстовых строк также, как вы ставите несколько плюсов при сложении нескольких чисел (2+8+6+4+8) - Если нужно приклеить произвольный текст (даже если это всего лишь точка или пробел, не говоря уж о целом слове), то этот текст надо заключать в кавычки. В предыдущем примере с функцией СЦЕПИТЬ о кавычках заботится сам Excel — в этом же случае их надо ставить вручную.
Вот, например, как можно собрать ФИО в одну ячейку из трех с добавлением пробелов:
Если сочетать это с функцией извлечения из текста первых букв — ЛЕВСИМВ (LEFT), то можно получить фамилию с инициалами одной формулой:
Способ 3. Макрос для объединения ячеек без потери текста.
Имеем текст в нескольких ячейках и желание — объединить эти ячейки в одну, слив туда же их текст. Проблема в одном — кнопка Объединить и поместить в центре (Merge and Center) в Excel объединять-то ячейки умеет, а вот с текстом сложность — в живых остается только текст из верхней левой ячейки.
Чтобы объединение ячеек происходило с объединением текста (как в таблицах Word) придется использовать макрос. Для этого откройте редактор Visual Basic на вкладке Разработчик — Visual Basic (Developer — Visual Basic) или сочетанием клавиш Alt+F11, вставим в нашу книгу новый программный модуль (меню Insert — Module) и скопируем туда текст такого простого макроса:
Sub MergeToOneCell()
Const sDELIM As String = " " 'символ-разделитель
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> "Range" Then Exit Sub 'если выделены не ячейки - выходим
With Selection
For Each rCell In .Cells
sMergeStr = sMergeStr & sDELIM & rCell.Text 'собираем текст из ячеек
Next rCell
Application.DisplayAlerts = False 'отключаем стандартное предупреждение о потере текста
.Merge Across:=False 'объединяем ячейки
Application.
DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM)) 'добавляем к объед.ячейке суммарный текст
End With
End Sub
Теперь, если выделить несколько ячеек и запустить этот макрос с помощью сочетания клавиш Alt+F8 или кнопкой Макросы на вкладке Разработчик (Developer — Macros), то Excel объединит выделенные ячейки в одну, слив туда же и текст через пробелы.
Ссылки по теме
- Делим текст на куски
- Объединение нескольких ячеек в одну с сохранением текста с помощью надстройки PLEX
- Что такое макросы, как их использовать, куда вставлять код макроса на VBA
php — отображается только первое слово в многословной переменной
спросил
Изменено 10 лет, 5 месяцев назад
Просмотрено 5к раз
В моей форме есть следующие значения, основанные на стандартном запросе PHP/MySql.
эхо "\n Местоположение тр>"; Если значением
$locationявляется одно слово, оно отображается правильно, если это более одного слова, скажите «Северный кампус», отображается только «Север».Я проверил дважды и трижды, и правильное значение находится в базе данных, когда я выполняю эхо для значения $location, оно отображает правильное значение, но когда оно отображается в поле выше, оно отбрасывает последнее слово. Он делает это со всеми моими переменными, состоящими из более чем одного слова, поэтому я упустил что-то очевидное.
- php
- html
Вы забыли кавычки:
echo "\n Местоположение тр>"; Без кавычек первое слово будет отмечено, остальные будут интерпретированы как неверные атрибуты.
0
Вам нужно заключить его в одинарные кавычки, чтобы сделать его действительным атрибутом. HTML создается как
value=North Campus, который интерпретируется какvalue="North"и некоторый атрибутCampus, который не имеет значения. Используйтеvalue='$location'.вам нужно заключить его в кавычки, экранировав »
echo "\n Местоположение тр>"; 0
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Строка bash, состоящая из аргументов, состоящих из нескольких слов, в массив
Как в сценариях bash лучше всего преобразовать строку, содержащую буквенные кавычки, окружающие несколько слов, в массив с тем же результатом, что и проанализированные аргументы?
Существует много вопросов, все из которых применяют тактику уклонения, чтобы избежать проблемы вместо поиска решения, этот вопрос приводит следующие аргументы и хотел бы побудить читателя сосредоточиться на аргументах и, если вы готовы к этому, принять участие в вызове, чтобы найти оптимальное решение.
Выдвинутые аргументы:
- Хотя во многих сценариях следует избегать этого шаблона, поскольку существуют более подходящие альтернативные решения, автор считает, что допустимые варианты использования все еще остаются. Этот вопрос попытается создать один такой вариант использования, но не претендует на его жизнеспособность, а только на то, что это возможный сценарий, который может возникнуть в реальной ситуации.
- Вы должны найти оптимальное решение для удовлетворения требований. Вариант использования был выбран специально для реальных приложений. Вы можете не соглашаться с принятыми решениями, но вам не поручено высказывать мнение только для предоставления решения.
- Удовлетворить требование без изменения ввода или выбора транспорта. Оба были специально выбраны для сценария реального мира, чтобы защитить повествование о том, что эти части находятся вне вашего контроля.
- Нет ответов на конкретную проблему, и этот вопрос направлен на ее решение.
Если вы склонны избегать этого шаблона, просто избегайте вопроса, но если вы думаете, что готовы принять вызов, давайте посмотрим, как вы подойдете к проблеме.
Преобразование существующего сценария, используемого в настоящее время, для получения параметров через именованный канал или аналогичный поток. Чтобы свести к минимуму влияние на множество скриптов, находящихся вне контроля разработчиков, было принято решение не менять интерфейс. Существующие скрипты должны иметь возможность передавать через новую реализацию потока те же аргументы, что и раньше.
Существующая реализация:
$ ./string2array arg1 arg2 arg3 аргументы=( [0]="аргумент1" [1]="аргумент2" [2]="аргумент3" )Необходимое изменение:
$ echo "arg1 arg2 arg3" | ./string2массив аргументы=( [0]="аргумент1" [1]="аргумент2" [2]="аргумент3" )Как указано Bash и Double-Quotes, переходящие в argv, литеральные кавычки не анализируются, как можно было бы ожидать.
Этот скрипт рабочей среды можно использовать для тестирования различных решений, он управляет транспортом и формирует измеримый ответ. Рекомендуется сосредоточиться на сценарии решения, который получает строку в качестве аргумента, и вам следует заполнить переменную $args в виде массива.
Сценарий рабочей среды string2array:
#!/usr/bin/env bash #string2arry аргументы=() функция проверки () { local inspct=$(объявить аргументы -p) inspct=${inspct//\[/\\n\\t[}; inspct=${inspct//\'/}; inspct="${inspct:0:-1}\n)" эхо -e ${inspct#*-a } } при чтении -r; делать # источник решения для превращения $REPLY в массив $args источник $1 "${ОТВЕТ}" осмотреть ВыполненоСтандартное решение — НЕУДАЧА
Решение для преобразования строки в массив слов с разделителями-пробелами работало для нашего первого примера выше:
#решение1 аргументы=($@)Нежелательный результат
К сожалению, стандартное решение дает нежелательный результат для аргументов из нескольких слов в кавычках:
$ echo 'arg1 "multi arg 2" arg3' | ./string2массив решение1 аргументы=( [0]="аргумент1" [1]="\"мульти" [2]="аргумент" [3]="2\"" [4]="аргумент3" )
Используя сценарий рабочей среды, предоставьте фрагмент решения, который даст следующий результат для полученных аргументов.
Желаемый результат:
$ echo 'arg1 "несколько аргументов 2" arg3' | ./string2array решение-xyz аргументы=( [0]="аргумент1" [1]="много аргументов 2" [2]="аргумент3" )Решение должно быть во всех отношениях совместимо со стандартным анализом аргументов. Следующий модульный тест должен пройти для предоставленного решения. Если вы можете вспомнить что-то, что в настоящее время отсутствует в модульном тесте, оставьте комментарий, и мы можем обновить его.
Модульный тест для требований
Обновление: Тест упрощен и включает тест Джонатана Леффера
#!/usr/bin/env bash #test_string2массив решение = $ 1 функциональный тест () { cmd="echo \"${1}\" | .




Если вы склонны избегать этого шаблона, просто избегайте вопроса, но если вы думаете, что готовы принять вызов, давайте посмотрим, как вы подойдете к проблеме.
/string2массив решение1
аргументы=(
[0]="аргумент1"
[1]="\"мульти"
[2]="аргумент"
[3]="2\""
[4]="аргумент3"
)
