С клавиатуры вводится строка в каждое слово, поменяйте местами первую и последнюю букву
Обновлено: 21.11.2024
В этой статье представлены строковые функции и их использование в Tableau. Также на примере показано, как создать строковое вычисление.
Зачем использовать строковые функции
Строковые функции позволяют вам манипулировать строковыми данными (т. е. данными, состоящими из текста).
Например, у вас может быть поле, содержащее имена и фамилии всех ваших клиентов. Одним из участников может быть: Джейн Джонсон. Вы можете вывести фамилии всех ваших клиентов в новое поле, используя строковую функцию.
Расчет может выглядеть примерно так:
РАЗДЕЛИТЬ([Имя клиента], ' ', 2)
Поэтому SPLIT('Джейн Джонсон' , ' ', 2) = 'Джонсон'.
Строковые функции, доступные в Tableau:
Функция
Синтаксис
Определение
Возвращает код ASCII для первого символа строки .
Возвращает символ, закодированный номером кода ASCII .
Возвращает true, если данная строка содержит указанную подстроку.
СОДЕРЖИТ("Расчет", "alcu") = true
Возвращает значение true, если заданная строка заканчивается указанной подстрокой. Завершающие пробелы игнорируются.
ENDSWITH("Таблица", "leau") = true
Возвращает позицию индекса подстроки в строке или 0, если подстрока не найдена. Если добавлен необязательный аргумент start, функция игнорирует любые экземпляры подстроки, которые появляются перед стартовой позицией индекса. Первый символ в строке занимает позицию 1.
НАЙТИ("Расчет", "алку") = 2
НАЙТИ("Расчет", "Компьютер") = 0
НАЙТИ("Расчет", "а", 3) = 7 < br />НАЙТИ("Расчет", "а", 2) = 2
НАЙТИ("Расчет", "а", 8) = 0
НАЙТИ("Расчет", "а", 3 ) = 7
НАЙТИ("Расчет", "а", 2) = 2
НАЙТИ("Расчет", "а", 8) = 0
Возвращает позицию n-го вхождения подстроки в указанной строке, где n определяется аргументом вхождения.
Примечание. FINDNTH доступен не для всех источников данных.
НАЙТИ("Вычисление", "а", 2) = 7
Возвращает крайнее левое количество символов в строке.
LEFT("Матадор", 4) = "Мата"
Возвращает длину строки.
Возвращает строку со всеми символами в нижнем регистре.
Возвращает строку с удаленными начальными пробелами.
LTRIM("Матадор") = "Матадор"
Возвращает максимальное значение a и b (они должны быть одного типа). Эта функция обычно используется для сравнения чисел, но также работает и со строками. Со строками MAX находит самое высокое значение в последовательности сортировки, определенной базой данных для этого столбца. Он возвращает Null, если любой из аргументов равен Null.
MAX ("Яблоко", "Банан") = "Банан"
Возвращает строку, начинающуюся с начальной позиции индекса. Первым символом в строке является позиция 1. Если добавляется необязательная длина аргумента, возвращаемая строка будет содержать только указанное количество символов.
MID("Расчет", 2) = "расчет"
MID("Расчет", 2, 5) ="расчет"
Возвращает минимальное значение a и b (они должны быть одного типа). Эта функция обычно используется для сравнения чисел, но также работает и со строками. В случае строк функция MIN находит самое низкое значение в последовательности сортировки. Он возвращает Null, если любой из аргументов равен Null.
MIN ("Яблоко", "Банан") = "Яблоко"
Ищет в строке подстроку и заменяет ее заменой . Если подстрока не найдена, строка не изменяется.
ЗАМЕНИТЬ("Версия8.5", "8.5", "9.0") = "Версия9.0"
Возвращает крайнее правое количество символов в строке .
ВПРАВО("Вычисление", 4) = "вычисление"
Возвращает строку с удаленными пробелами в конце.
RTRIM("Расчет") = "Расчет"
Возвращает строку, состоящую из указанного количества повторяющихся пробелов.
Возвращает подстроку из строки, используя символ-разделитель для разделения строки на последовательность токенов.
Строка интерпретируется как чередующаяся последовательность разделителей и токенов. Таким образом, для строки abc-defgh-i-jkl, где символ-разделитель — «-», токенами являются abc, defgh, i и jlk. Думайте об этом как о токенах с 1 по 4. SPLIT возвращает токен, соответствующий номеру токена. Когда номер токена положительный, токены подсчитываются, начиная с левого конца строки; когда номер токена отрицательный, токены подсчитываются, начиная справа.
РАЗДЕЛИТЬ ('abc-d', '-', 2) = 'b'
РАЗДЕЛИТЬ ('a|b|c|d', '|', -2) = 'c' р>
Примечание. Команды split и custom split доступны для следующих типов источников данных: извлечения данных Tableau, Microsoft Excel, текстовый файл, файл PDF, Salesforce, OData, Microsoft Azure Market Place, Google Analytics, Vertica, Oracle, MySQL. , PostgreSQL, Teradata, Amazon Redshift, Aster Data, Google Big Query, Cloudera Hadoop Hive, Hortonworks Hive и Microsoft SQL Server.
Некоторые источники данных накладывают ограничения на разбиение строки.В следующей таблице показано, какие источники данных поддерживают отрицательные номера токенов (разбиение справа) и существует ли ограничение на количество разрешенных разбиений для каждого источника данных. Функция SPLIT, указывающая отрицательный номер токена и допустимая для других источников данных, вернет эту ошибку для этих источников данных: "Разделение справа не поддерживается источником данных".
Возвращает true, если строка начинается с подстроки. Начальные пробелы игнорируются.
НАЧАЛО("Джокер", "Джо") = true
Возвращает строку с удаленными начальными и конечными пробелами.
TRIM("Расчет") = "Расчет"
Возвращает строку со всеми символами в верхнем регистре.
Создать строковое вычисление
Следуйте приведенным ниже шагам, чтобы узнать, как создать строковое вычисление.
В Tableau Desktop подключитесь к сохраненному источнику данных Sample — Superstore, который поставляется вместе с Tableau.
Перейти к рабочему листу.
На панели "Данные" в разделе "Параметры" перетащите идентификатор заказа на полку "Строки".
Обратите внимание, что каждый идентификатор заказа содержит значения для страны (например, Калифорния и США), года (2011) и номера заказа (100006). В этом примере вы создадите вычисление, чтобы извлечь из поля только номер заказа.
Выберите Анализ > Создать вычисляемое поле.
В открывшемся редакторе расчетов выполните следующие действия:
Назовите вычисляемое поле Order ID Numbers.
Введите следующую формулу:
ВПРАВО([Идентификатор заказа], 6)
Эта формула берет указанные цифры (6) справа от строки и вставляет их в новое поле.
Поэтому ПРАВИЛЬНО('CA-2011-100006' , 6) = '100006'.
По завершении нажмите ОК.
Новое вычисляемое поле появится в разделе "Измерения" на панели "Данные". Как и другие поля, вы можете использовать его в одной или нескольких визуализациях.
На панели "Данные" перетащите идентификаторы заказов на полку "Строки". Поместите его справа от идентификатора заказа.
Ввод значений с клавиатуры — не единственный способ редактирования значений в таблице. В некоторых случаях может потребоваться выполнить математический расчет, чтобы установить значение поля для одной записи или даже для всех записей. Вы можете выполнять как простые, так и расширенные вычисления для всех или выбранных записей. Кроме того, вы можете вычислять площадь, длину, периметр и другие геометрические свойства полей в таблицах атрибутов. Разделы ниже содержат примеры использования калькулятора поля. Расчеты можно выполнять с помощью Python или VBScript.
Python является рекомендуемым языком сценариев для ArcGIS. Используйте Python, если вам нужен доступ к функциям геообработки, включая геометрию объектов. Принятие Python в качестве языка сценариев для ArcGIS предоставляет множество возможностей для выполнения вычислений.
Используйте VBScript, если у вас есть опыт работы с VBA или VBScript и вы знакомы с синтаксисом сценариев. Сохраненные файлы .cal из предыдущих версий ArcGIS могут работать или требуют минимальных изменений. Если у вас есть код VBA из прошлых выпусков, использующий ArcObjects, вам потребуется изменить свои расчеты.
- Python использует отступы как часть синтаксиса. Используйте два или четыре пробела для определения каждого логического уровня. Выровняйте начало и конец блоков операторов и будьте последовательны.
- Поля вычислений Python заключены в восклицательные знаки ( !! ).
- При именовании переменных обратите внимание, что Python чувствителен к регистру, поэтому значение не совпадает со значением.
- VBScript не позволяет явно объявлять какие-либо типы данных; все переменные неявно Variant . Такие операторы, как Dim x as String, следует удалить или упростить до Dim x .
- После ввода инструкций вы можете нажать Сохранить, если хотите записать их в файл. Кнопка «Загрузить» предложит вам найти и выбрать существующий файл расчета.
Простые расчеты
Примеры простых строк
Строки поддерживаются рядом строковых функций Python, включая capitalize , rstrip и replace .
Используйте первый символ строки в поле CITY_NAME с заглавной буквы.
Удалите все пробелы в конце строки в поле CITY_NAME .
Замените все вхождения слова "Калифорния" словом "Калифорния" в поле STATE_NAME .
Доступ к символам в строковом поле можно получить с помощью индексации и нарезки в Python. При индексировании выбираются символы в позиции индекса; нарезка выбирает группу символов. В следующей таблице предположим, что !fieldname! представляет собой строковое поле со значением "abcde" .
Первый символ.
Предпоследний символ.
Второй, третий и четвертый символы.
Python также поддерживает форматирование строк с помощью метода str.format().
Объедините поля FieldA и FieldB, разделенные двоеточием.
Строковые функции VBScript
Строки поддерживаются рядом строковых функций VBScript, включая Left , InStr и Chr . Ниже приведены некоторые примеры VBScript для часто используемых строковых функций в калькуляторе полей.
Левая функция: возвращает вариант (строку), содержащий указанное количество символов с левой стороны строки.
Правильная функция: возвращает вариант (строку), содержащий указанное количество символов с правой стороны строки.
Функция Mid: возвращает вариант (строку), содержащий указанное количество символов из строки.
Функция InStr: возвращает Variant (Long), указывающий позицию первого вхождения одной строки в другую.
Функция замены: возвращает строку, в которой указанная подстрока была заменена другой подстрокой указанное количество раз.
Функция Chr: возвращает строку, содержащую символ, связанный с указанным кодом символа.
& оператор: используется для принудительного объединения строк двух выражений.
Простые математические примеры
Python предоставляет инструменты для обработки чисел. Python также поддерживает ряд числовых и математических функций, включая math, cmath, decimal, random, itertools, functools и operator.
Класс String имеет ряд методов для проверки содержимого строк, поиска символов или подстрок в строке, изменения регистра и других задач.
Получение символов и подстрок по индексу
Вы можете получить символ по определенному индексу в строке, вызвав метод доступа charAt(). Индекс первого символа равен 0, а индекс последнего символа — length()-1. Например, следующий код получает символ с индексом 9 в строке:
Если вы хотите получить из строки более одного последовательного символа, вы можете использовать метод подстроки. Метод подстроки имеет две версии, как показано в следующей таблице:
Method | Описание |
---|---|
Подстрока строки (int beginIndex, int endIndex) | Возвращает новую строку, которая является подстрокой этой строки. Подстрока начинается с указанного beginIndex и продолжается до символа с индексом endIndex - 1 . |
String substring(int beginIndex) | Возвращает новую строку, которая является подстрокой этой строки. Целочисленный аргумент указывает индекс первого символа. Здесь возвращаемая подстрока продолжается до конца исходной строки. |
Следующий код получает из палиндрома Ниагара подстроку, которая простирается от индекса 11 до индекса 15, но не включает в себя индекс 15, который является словом "рев":
Другие методы работы со строками
Вот несколько других методов String для работы со строками:
Метод | Описание |
---|---|
String[] split(String regex) String[] split(String regex, int limit) | Выполняет поиск соответствия, как указано строковым аргументом (который содержит регулярное выражение), и разбивает эту строку на массив строк соответственно. Необязательный целочисленный аргумент указывает максимальный размер возвращаемого массива. Регулярные выражения рассматриваются в уроке под названием «Регулярные выражения». |
CharSequence subSequence(int beginIndex, int endIndex) | Возвращает новую последовательность символов, построенную из индекса beginIndex до endIndex - 1. |
String trim() | Возвращает копию этой строки с удаленными начальными и конечными пробелами. |
String toLowerCase() String toUpperCase() td> | Возвращает копию этой строки, преобразованную в нижний или верхний регистр. Если преобразования не требуются, эти методы возвращают исходную строку. |
Поиск символов и подстрок в строке
Вот некоторые другие методы String для поиска символов или подстрок в строке. Класс String предоставляет методы доступа, которые возвращают позицию определенного символа или подстроки в строке: indexOf() и lastIndexOf() . Методы indexOf() выполняют поиск вперед с начала строки, а методы lastIndexOf() выполняют поиск в обратном направлении с конца строки. Если символ или подстрока не найдены, indexOf() и lastIndexOf() возвращают -1.
Класс String также предоставляет метод поиска contains , который возвращает значение true, если строка содержит определенную последовательность символов. Используйте этот метод, когда вам нужно только знать, что строка содержит последовательность символов, но точное расположение не имеет значения.
В следующей таблице описаны различные методы поиска строк.
Метод | Описание |
---|---|
int indexOf(int ch) int lastIndexOf (int ch) | Возвращает индекс первого (последнего) появления указанного символа. |
int indexOf(int ch, int fromIndex) int lastIndexOf(int ch, int fromIndex) | Возвращает индекс первого (последнего) вхождения указанного символа, поиск вперед (назад) от указанного индекса. |
int indexOf(String str) int lastIndexOf(String str) | Возвращает индекс первого (последнего) вхождения указанной подстроки. |
int indexOf(String str, int fromIndex) < br />int lastIndexOf(String str, int fromIndex) | Возвращает индекс первого (последнего) вхождения указанной подстроки, выполняя поиск вперед (назад) по указанному индексу. |
boolean contains(CharSequence s) | Возвращает true, если строка содержит указанную последовательность символов. |
Примечание. CharSequence — это интерфейс, реализованный классом String. Поэтому вы можете использовать строку в качестве аргумента для метода contains().
Замена символов и подстрок в строке
В классе String очень мало методов для вставки символов или подстрок в строку. Как правило, они не нужны: вы можете создать новую строку путем объединения подстрок, которые вы удалили из строки, с подстрокой, которую вы хотите вставить.
Метод | Описание |
---|---|
Замена строки (char oldChar, char newChar) | Возвращает новую строку, полученную в результате замены всех вхождений oldChar в этой строке на newChar. |
String replace(CharSequence target, Замена CharSequence) | Заменяет каждую подстроку этой строки, которая соответствует целевой последовательности литералов, указанной последовательностью замены литералов. |
String replaceAll(String regex, String replace) | Заменяет каждую подстроку этой строки, которая соответствует заданному регулярному выражению, заданной заменой. | String replaceFirst(регулярное выражение строки, замена строки) td> | Заменяет первую подстроку этой строки, которая соответствует заданному регулярному выражению, заданной заменой. |
Пример
Следующий класс Filename иллюстрирует использование lastIndexOf() и substring() для изоляции различных частей имени файла.
Примечание. Методы в следующем классе Filename не выполняют проверку ошибок и предполагают, что их аргумент содержит полный путь к каталогу и имя файла с расширением. Если бы эти методы были производственным кодом, они проверяли бы правильность построения своих аргументов.
Вот программа FilenameDemo, которая создает объект Filename и вызывает все его методы:
Как показано на следующем рисунке, наш метод расширения использует lastIndexOf для поиска последнего вхождения точки (.) в имени файла. Затем substring использует возвращаемое значение lastIndexOf для извлечения расширения имени файла, то есть подстроки от точки до конца строки. Этот код предполагает, что в имени файла есть точка; если в имени файла нет точки, lastIndexOf возвращает -1, а метод подстроки создает исключение StringIndexOutOfBoundsException .
Кроме того, обратите внимание, что метод расширения использует точку + 1 в качестве аргумента для подстроки. Если символ точки (.) является последним символом строки, точка + 1 равна длине строки, которая на единицу больше, чем наибольший индекс в строке (поскольку индексы начинаются с 0). Это допустимый аргумент для подстроки, поскольку этот метод принимает индекс, равный, но не превышающий длину строки, и интерпретирует его как "конец строки".
Предыдущая страница: Преобразование чисел и строк
Следующая страница: Сравнение строк и частей строк
Перечислено Томом Огилви из HELP (VBA HELP), но я не могу найти какую именно справку.
Ключевые слова действия
Сравните две строки. StrComp
Преобразование строк. StrConv
Преобразование в нижний или верхний регистр. Format, LCase, UCase
Создайте строку из повторяющихся символов. Space, String
Найти длину строки. Len
Форматировать строку.
Форматировать строку по ширине. LSet, RSet
Управление строками. InStr, Left, LTrim, Mid, Right, RTrim, Trim
Установите правила сравнения строк. Опция Сравнить
Работа со значениями ASCII и ANSI. Asc, Chr
Для получения дополнительной информации об эквивалентной функции рабочего листа и коде Visual Basic.
ПОМОЩЬ (F1) --> Мастер ответов: визуальный рабочий лист
Справочник по языку и программированию
Использование функций рабочего листа Microsoft Excel в Visual Basic
Список функций рабочего листа, доступных в Visual Basic . [из справки VBA] [L]Функции: для использования функции Excel в префиксе VBA с Application.WorksheetFunction. --
answer = application.substitute( стог сена, иголка, замена)
c = Len(v) - Len(Application.WorksheetFunction.Substitute(v, ".", ""))
>c = Len(v) - Len(Replace(v, ".", "")) '-- заменить функцию avail в VBAНе строки, а использовать некоторые функции рабочего листа, такие как MIN, MAX
answer = Application.WorksheetFunction.Min(myRange)Методы:
Activesheet.Columns("A").Replace(Что, Замена, LookAt, _
SearchOrder, MatchCase, MatchByte) '--replace метод
Set rng = ActiveSheet.UsedRange.Find("ANN") '-- как сочетание клавиш FIND (Ctrl+F), без учета регистра [Пример]
В целом функции рабочего листа не чувствительны к регистру, а в программировании VBA все, что является строго VBA, чувствительно к регистру.Функции WS: чтобы сделать что-то чувствительным к регистру, как при проверке данных, измените раскрывающийся список «Разрешить» на «Пользовательский», затем, предполагая, что активной ячейкой является A1, введите =Exact(A1,UPPER(A1)) для обеспечения верхнего регистра, или =EXACT(A1,LOWER(A1)), чтобы обеспечить строчные буквы, и щелкните вкладку «Предупреждение об ошибке» и создайте соответствующее сообщение об ошибке. Как указано в таблице вверху, FIND чувствителен к регистру, а SEARCH — нет. ПОДСТАВИТЬ(значение,кому,от) полностью чувствителен к регистру. UPPER, LOWER и PROPER не чувствительны к регистру, но преобразуют регистр букв.
VBA: использование чувствительно к регистру. Заявление. -- вызывает функцию Excel, поэтому она будет чувствительна к регистру, если функция Excel чувствительна к регистру. Чтобы сделать VBA нечувствительным к регистру, вы можете использовать UCASE или LCASE, как в IF UCASE(myvar) = "ABC" THEN .
Есть несколько функций VB, которые можно сделать нечувствительными к регистру с операндом (InStr, Sort, Replace, Find, Select)
InStr(1, Range("b2"), "text") как двоичный сравнение (по умолчанию 0: vbBinaryCompare)
InStr(1, Range("b2"), "Text", 1) как текстовое сравнение (1: vbTextCompare)
Функции рабочего листа для определения фактического содержания данных: ISNUMBER, ISTEXT, LEN, ISBLANK, CODE. (см. Формат отладки на странице моей формулы.
Функция поиска в рабочей таблице не чувствительна к регистру и позволяет использовать подстановочные знаки, предшествующие подстановочным знакам ?, или *, или ~ с ~ (тильда) для соответствия фактическому символу. Функция рабочего листа НАЙТИ (с учетом регистра) не допускает использование подстановочных знаков. Подстановочные знаки: ? один символ, * любое количество символов.Сочетания клавиш «Найти» (Ctrl+F) и «Заменить» (Ctrl+H) не чувствительны к регистру и позволяют использовать подстановочные знаки и переопределять подстановочные знаки.
Примеры использования подстановочных знаков можно найти в разделе ПОИСК и НАЙТИ среди некоторых примеров условного форматирования.
Не путайте форматирование текста с амперсандом (&) в верхних и нижних колонтитулах (чтобы ввести простой амперсанд, удвойте их, как в AT&&T.
Также прочтите о регулярных выражениях и LIKE (оператор VBA).
< /цитата>Следующее эквивалентно
Изменение регистра символов на правильный, нижний или верхнийзапрограммированные функции VBA:
PROPER(правильный), LOWER (LCase) и UPPER (UCase)
Обратите внимание, что пример VBA для правильного содержит дополнительный код, чтобы не использовать первую букву определенных слов после первого слова.Функции рабочего листа:
=PROPER(), =LCASE() и = UPPER()Извлечь первое слово
Извлеките первое слово, содержит дополнительный код, поэтому он не будет отображать ноль, когда исходная ячейка пуста, и не будет давать сбой, если в исходном коде есть только одно слово.=ЕСЛИ(ДЛСТР(A11)=0,"",ЕСЛИ(ЕОШИБКА(НАЙТИ(" ",A11)),A11,ЛЕВО(A11,НАЙТИ(" ",A11)-1)))
Извлечь часть после пробела/дефиса/пробела
Вы также можете использовать ПОИСК, чтобы найти одну текстовую строку в другой, но в отличие от ПОИСКА, ПОИСК чувствителен к регистру и не допускает использования подстановочных знаков.
Извлеките часть между круглыми скобками или другими разделителями
=ЕСЛИ(ЕОШИБКА(НАЙТИ(")",A1)),"",ЕСЛИ(ЕОШИБКА(НАЙТИ("(",A1)),"",ЛЕВО(ПРАВО(A1,ДЛСТР(A1)-НАЙТИ) ("(",A1)) ,НАЙТИ(")", RIGHT(A1,LEN(A1)-НАЙТИ("(",A1)) )-1)))Разбивая приведенное выше, чтобы визуализировать: < br />Пример данных:
Peachtree Ltd (Бостон), LC Casey, менеджер
Следующее возвращает �(Бостон)�, если присутствуют обе скобки
=RIGHT(A1,LEN(A1)-FIND("(",A1))
Следующее использует приведенную выше формулу, удаляя обе скобки и проверяет ЕОШИБКА
=ЕСЛИ(ЕОШИБКА(НАЙТИ(")",A1)),"",ЕСЛИ(ЕОШИБКА(НАЙТИ("(",A1)),"",ЛЕВО( F1 , НАЙТИ(")", F1 )-1)))
Вернет 2, если одна запятая, но главное показать ноль, если ячейка пуста или содержит только пробелы
=LEN(A1)-LEN(SUBSTITUTE(A1,", ",""))+(LEN(TRIM(A1))>0)
Не спрашивайте меня, как это работает, это было опубликовано 29 мая 1998 г. Лораном Лонгром. Это найдет последнее слово в ячейке A1. Работает по крайней мере в XL95 и XL97.=TRIM(CALL("Crtdll","strrchr","CCI",A1,32))
Описанное выше не работает в Excel 2000, поскольку CALL был отключен в Excel 2000, а некоторые из более поздних исправлений ошибок в Excel 97. На самом деле, если бы цель была разделить имена, я бы использовал макрос, такой как SepLastTerm(), отделяющий последнее слово от начала текста, при этом последний термин перемещается в ячейку справа. В следующем примере показано средство поиска последнего слова с использованием пробела (� �) вместо обратной косой черты (�\�).
Найти последнее слово в строке (повторно)
Решение для рабочего листа: возвращает количество слов, найденных в ячейке A1, где CHAR(32) – пробел. Для некоторых из нас char(32) совпадает с шестнадцатеричным кодом 20, он менее двусмыслен, чем " ", и с меньшей вероятностью может быть непреднамеренно изменен.
=IF(LEN(TRIM(A1))=0,0,LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1),CHAR(32),""))+1)Вышеупомянутое уменьшает потребность в следующем, что, вероятно, может быть значительно уменьшено на основе метода, использованного выше.
Peo Sjoblom упрощает кодирование (но это не совсем так, потому что это неверно): =(LEN(A1)-LEN(SUBSTITUTE(UPPER(A1),UPPER("open"),"")))/ ДЛСТР("открыть")
WordCount возвращает 6 — количество слов в следующем примере: в строке. Строка использует пробел(" ") в качестве разделителя в следующем примере:
=WordCount("Здесь найдено шесть слов."," ")
Код для WordCount() (этот код основан на кодировании ExtractElement)
Найти первые два слова в строке. TRIM удаляет начальные пробелы, если таковые имеются. Что бы это ни стоило, LTRIM есть в VBA, но не в Excel. Excel уменьшит количество пробелов в середине, так что "A TWO" по-прежнему будет производить первые два слова "A TWO"
=(LEN(A1)-LEN(SUBSTITUTE(A1,"aa","")))/LEN("aa")
-- Джим Реч в worksheet.functions 1999-12-02< /p>
Чтобы сделать аргумент нечувствительным к тестовому набору, поместите аргумент в ПРОПИСНЫЕ (.)
=(LEN(A1)-LEN(SUBSTITUTE(UPPER(A1),"AA","")))/LEN("AA ")
Найти строку между двумя разными разделителями (точка слева, @ справа)
Удалить МакРитчи из David.McRitchie@myispNOSPAM.comПредыдущий способ не сработает, если второй разделитель тоже будет найден раньше. Следующее удалит www.abc.com из http://www.abc.com/. или https://www.abc.com/news/.=MID(LEFT(A1,НАЙТИ("@",A1)-1),НАЙТИ(".",A1)+1,255)
=ЛЕВЫЙ(СРЕДН(B1,НАЙТИ("://",B1)+3,255),НАЙТИ("/",СРЕДН(B1,НАЙТИ("://",B1)+3,255))-1 )
=ЕСЛИ(A1="","",ЛЕВО(СРЕДН(A1,НАЙТИ("://",A1)+3,255),НАЙТИ("/",СРЕДН(A1,НАЙТИ(":/ /",A1)+3,255))-1))
Первый символ отмечен как буквенный
На основе ответа Денни Кэмпбелла, опубликованного 23 февраля 1999 г.
Следующее возвращает TRUE, если 1-й символ является буквой, и FALSE, если это не так.
=NOT(ISNUMBER(VALUE(LEFT(D7,1))))Изменено для отклонения пустых ячеек, означающих IПУСТО (пустые, никогда не используемые), и ячеек, содержащих только пробелы).
=IF(LEFT(TRIM(D7))="","",NOT(ISNUMBER(VALUE(LEFT(D7,1)))))
Частота
Большинство символов от 192 до 255 — это символы шрифта Latin1, которые используются на других языках, за исключением 215 и 247, поэтому вы можете уточнить приведенное выше в соответствии со своими данными. Также см. синболы, юникод).65–90 – прописные буквы, 97–122 – строчные.
Проблемы с данными, особенно с данными, вставленными из HTML
=ISNUMBER(E2)
=ISTEXT(E2)
=LEN(E2)
=ISBLANK(E2) [в VBA эквивалент ISEMPTY]
=CODE( E2) =CODE(RIGHT(E2,1)) [в VBA эквивалентом является ASC]
=personal.xls!GetFormula(E2)
=personal.xls!GetFormat(E2)
Сравнение строк, сравнение со вторым пробелом (на основе публикации 2003-01-090
Возвращает строку после последнего символа �/�
Возвращает строку после первого символа �/�
Перестановка данных в столбцах электронной таблицы
Переупорядочивайте столбцы, разделяя, объединяя или переворачивая столбцы данных.
MarkCells() Создает тестовые данные, помещая адрес ячейки в качестве значения для каждой ячейки в выбранном диапазоне.Объединить столбцы вместе
Join() можно использовать для обращения правильно выполненного текста к столбцам.Отдельные термины в столбцах
SepTerm() можно использовать как более ограниченную версию текста для столбцов, который отделяется только от первого слова.Выйти на второй срок. Первое слово остается на месте, второе и остальные идут в следующую колонку. Это достигается с помощью SepTerm() с диапазоном из двух столбцов. Первый член останется, а остаток пойдет во второй столбец.
SepLastTerm() отделяет последнее слово от начала текста.
Обратный порядок элементов в строке, столбце или диапазоне
ReversI() используется для изменения порядка элементов в строке, столбце или диапазоне.
Удаление непечатаемых символов
Было бы целесообразно точно выяснить, что это за символы, потому что вы можете делать разные вещи с разными «непечатаемыми» символами. Если это так, вы можете использовать REPLACE для замены символов пробелом вместо CLEAN, который удалит их. т. е. Вы можете не хотеть этого.Возвращает числовой код для первого символа в текстовой строке.
Функция рабочего листа: =CODE(A1)
VBA: MsgBox ASC(cell.value)9 = TAB, 10=LF , 13=CR, 160 – неразрывный пробел ( )
(перевод строки, возврат каретки, если используются оба CRLF)Подробнее, возможно, на моей странице "Символы" в другом каталоге: http://www.mvps .org/dmcritchie/rexx/htm/symbols.htm
Для наглядности:
Чтобы найти ASCII-код одного вставленного символа, используйте CODE(char):
=CODE("A ") дает 65 для "A", Alt+0065 равно "A"
=CHAR(65) дает "A" для кода 65Также см. макрос TRIMALL и подробные пояснения относительно CODE(160)   ( неразрывный пробел), замены и удаления, а также различия между TRIM в Excel и VBA TRIM.
Возвращает строку после последнего �\� или всю строку, если обратная косая черта отсутствует. StrReverse был представлен в Excel 2000. Вы можете написать UDF для использования до Excel 2000, и если вы хотите использовать StrReverse на листе, вы должны использовать UDF, см. StrReverse User Defined Function.
Краткий список функций рабочего листа (обзор) можно найти по адресу Origin of Excel Worksheet Function Names -- http://www2.odn.ne.jp/excel/functioninenglish.html � от Janma,
остальная часть его сайта Excel, «Excel Skill Training Hall», на японском языке. Справочник по функциям рабочего листа, который обязательно нужно загрузить и сохранить на вашем компьютере. Словарь функций Excel -- http://homepage.ntlworld.com/noneley – Питер Нонели,
Альтернативный сайт загрузки http://homepage.ntlworld.com /peter.noneley)
книга, содержащая более 157 листов, на каждом из которых есть объяснение и пример функции Excel. /\ Группы новостей и поиск в группах новостей, Excel Некоторая информация о поиске информации с помощью расширенного поиска Google Usenet в группах новостей Excel, а также некоторая информация о поиске в базе данных Microsoft Knowledge Database (KB). ExtractDigits, определяемая пользователем функция, извлекает первый набор последовательных цифр из строки. Обрабатывать как число, если найдено, как пустую строку, если ничего не найдено (т. е. g25abc16 вернет 25). В следующем сообщении в той же теме Джордж Симмс извлекает набор цифр из крайнего левого положения только с помощью формулы массива (ctrl+shift+enter), но это не удается ни для чего другого (например, g25abc16 не получится).
=СРЕДН(A1,1,ПОИСКПОЗ(ИСТИНА,ЕОШИБКА(1*СРЕДН(A1,СТРОКА(ДВССЫЛ("1:25")),1)),0)-1)*1
После публикации Пео Сьоблома формула массива извлекает набор цифр в виде строки слева/посередине/справа, но она терпит неудачу, если у вас есть два набора цифр или нет цифр в одной строке (т.е. g25abc16 не будет работать).
=СРЕДН(A1,ПОИСКПОЗ(ЛОЖЬ,ЕОШИБКА(1*СРЕДН(A1,СТРОКА(ДВССЫЛ("1:100")),1)),0),100-СУММ(1*ЕОШИБКА(1*) MID(A1,ROW(INDIRECT("1:100")),1))))*1 Извлечение группы цифр и тире, опубликованное Harlan Grove, использование регулярных выражений (RegExpr) в LIKE в VBA. Правильные и другие функции изменения текста ПРОПИСНЫЕ, НИЖНИЕ (LCase) и ВЕРХНИЕ (UCase). Подпрограмма TrimSUB для TRIM ячеек в выделении. Перестановка данных в столбцах. Переупорядочивайте столбцы, разделяя, объединяя или обращая столбцы данных. Join() можно использовать как обращение правильно выполненного текста к столбцам. Lastname() может использоваться, поскольку поместить сначала фамилию еще не сделано. SepTerm() можно использовать как более ограниченную версию текста для столбцов, которые отделяются только от первого слова. SepLastTerm() отделяет последнее слово от начала текста. ReversI() используется для изменения порядка элементов в строке, столбце или диапазоне. RotateCW() используется для поворота диапазона ячеек на 90 градусов с сохранением формул и форматов. Область выбора должна включать ячейку A1. MarkCells() используется для создания тестовых данных в пределах вызванного диапазона. MarkSepAreas() включает адрес ячейки и номер области для создания тестовых данных в нескольких диапазонах.то есть A1-1, B1-1, B2-2, C2-2, D2-2. Дополнительный материал включает в себя использование маркера заполнения и создание листа с горячими клавишами для справки. Код WordCount для WordCount() был получен из кода ExtractElement.
Вы один из многих уважаемых посетителей, посетивших мой сайт здесь или в предыдущем месте с момента создания этой страницы 6 октября 1998 года.
Пожалуйста, присылайте свои комментарии относительно этой веб-страницы по адресу: David McRitchie отправлять комментарии по электронной почте
Как сделать заглавной только первую букву или первую букву каждого слова в Excel?
Предположим, что у вас есть список текстовых строк, в которых все слова написаны прописными, строчными буквами или смешаны со строчными и прописными буквами, в этой ситуации вам нужно сделать первую букву каждого слова в ячейке прописной, а остальные нижний регистр, как показано на следующем скриншоте. Есть ли у вас хорошие способы быстро и легко сделать заглавной или прописной первую букву каждого слова для нескольких ячеек в Excel?
Чтобы сделать первую букву каждого слова в ячейке заглавной, вы можете использовать соответствующую функцию или простой код VBA. Пожалуйста, выполните следующие действия:
Метод 1: Правильная функция:
<р>1. Введите эту формулу: =PROPER(A2) в пустую ячейку рядом с вашими данными, например, B2, см. снимок экрана:<р>2. А затем перетащите маркер заполнения вниз к ячейкам, к которым вы хотите применить эту формулу, и вы увидите, что все первые буквы каждого слова в ячейке были заглавными. Смотрите скриншот:
Метод 2: код VBA:
Следующий код VBA также может помочь вам перевести все первые буквы каждого слова в ячейку в верхний регистр.
<р>1. Удерживайте нажатыми клавиши ALT + F11, чтобы открыть окно Microsoft Visual Basic для приложений. <р>2. Нажмите «Вставить» > «Модуль» и вставьте следующий код в окно модуля.Код VBA: Делайте первую букву каждого слова в ячейке заглавной
<р>3. Затем нажмите клавишу F5, чтобы выполнить этот код, и выберите диапазон данных, который вы хотите использовать, в появившемся диалоговом окне, см. снимок экрана:<р>4. А затем нажмите кнопку ОК, все первые буквы каждого слова в ячейках стали заглавными.
Использовать только первую букву или первую букву каждого слова в ячейках текстовой строки с заглавной буквы
С помощью утилиты Kutools for Excel Изменить регистр вы можете быстро изменить текстовые строки на верхний регистр, нижний регистр, правильный регистр, регистр предложения и т. д. Нажмите, чтобы скачать Kutools for Excel!
Иногда вы просто хотите, чтобы первая буква в ячейке была прописной, а остальные строчными. Вы сталкивались с этой проблемой в Excel? На самом деле, вот формула, которая может помочь вам решить эту задачу.
<р>1. Введите эту формулу в пустую ячейку рядом с вашими данными, =ВЕРХНИЙ(ЛЕВЫЙ(A2,1))&НИЖНИЙ(ПРАВЫЙ(A2,ДЛСТР(A2)-1)) , см. снимок экрана:<р>2. Затем перетащите маркер заполнения в диапазон ячеек, которые вы хотите содержать в этой формуле, и только первая буква ячеек стала прописной. Смотрите скриншот:
Если у вас есть Kutools for Excel, с функцией «Изменить регистр» вы можете быстро использовать как первую букву каждого слова, так и первую букву только в ячейке.
После установки Kutools for Excel сделайте следующее:
<р>1. Выберите диапазон данных, который вы хотите использовать. <р>2. Нажмите Kutools > Текст > Изменить регистр, см. снимок экрана:<р>3. Если в диалоговом окне «Изменить регистр» выбрать «Правильный регистр», первая буква каждого слова будет заглавной, см. снимок экрана:
Если вы выберете Sentence case, только первая буква текстовых строк будет заглавной, как показано на следующем снимке экрана:
Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно бесплатно попробовать без ограничений в течение 30 дней. Скачать и бесплатно попробовать прямо сейчас!
Читайте также: