Auditportal.ru

Аудит Портал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

как извлечь десятичное число из строки в c#

Я хотел бы получить 10,4, 20,5, 40, 1 в десятичном исчислении.

7 ответов

Небольшое усовершенствование решения @Michael:

Исходное решение было возвращено

На decimal / float число извлечения regex может отличаться в зависимости от того, используются ли и какие тысячные разделители, какой символ обозначает десятичный разделитель, хочет ли он также соответствовать индексу, соответствует ли он положительному или отрицательному знаку, опущены ли числа, которые могут иметь ведущий 0, независимо от того, извлекается ли число, заканчивающееся десятичным разделителем.

Общий regex в соответствии с наиболее распространенными типами десятичных чисел — это соответствие чисел с плавающей запятой регулярному выражению:

я только изменил группу захвата на группу без захвата (добавлено ?: после ( ). соответствует enter image description here

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

Эти выражения соответствуют целым и плавающим числам. Чтобы соответствовать только плавающим/десятичным числам, убедитесь, что требуется дробная часть шаблона, удалив второй символ ? после . (демонстрация):

теперь 34 не соответствует: enter image description here сочетается.

Если вы не хотите сопоставлять плавающие числа без ведущих нулей (например, .5 ), сделайте шаблон сопоставления первой цифры обязательным (добавление + квантователей для сопоставления 1 или более вхождений цифры):

посмотреть демо. Теперь он соответствует гораздо меньшему количеству образцов: enter image description here

Что теперь делать, если вы не хотите помещаться внутрь. ? Каким образом они должны быть подобраны как целые слова? Используйте обходные пути:

enter image description here

Теперь, как насчет тех плавающих чисел, которые имеют тысячи разделителей, например 12,123,456.23 или 34,345,767,678 ? Вы можете добавить (? Следующие цифры должны сопровождаться (,s)[0-9]+* после первого [0-9]+:

Читайте так же:
Как искать / находить значения в другой книге?

enter image description here

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

Как использовать эти шаблоны в языке C#?

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

Если у вас есть Linq :

Также подойдет метод foreach. Пожалуйста, дважды проверьте, что каждая строка на самом деле является числом ( ). Функция разбора не выдает никаких ошибок).

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

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

Также обратите внимание на отрицательные знаки, запятые и т.д.

Заслуга за следующее принадлежит @code4life. Я только добавил цикл for для разбора целых / десятичных чисел перед возвратом.

Как извлечь первое слово из текстовой строки в Excel (3 простых способа)

Как извлечь первое слово из текстовой строки в Excel (3 простых способа)

В Excel есть несколько замечательных формул, помогающих разделить текстовые данные на части.

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

В Excel это можно сделать с помощью формул, функции «Найти и заменить» или с помощью Flash Fill.

Вот как извлечь первое слово из текстовой строки с помощью программы Excel.

Извлеките первое слово с помощью текстовых формул

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

Следующая формула именно это и делает:

Позвольте объяснить, как работает эта формула.

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

Читайте так же:
Как найти версию Excel, которую вы используете сейчас?

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

Чтобы справиться с этой ситуацией, я заключил формулу LEFT в формулу IFERROR, которая просто возвращает исходное значение ячейки (поскольку нет пробелов, указывающих на то, что ячейка пустая или содержит только одно слово).

Преимуществом этого метода являются динамические результаты. Формула в столбце B будет автоматически обновляться, если вы измените исходный текст в ячейках столбца A.

Проще преобразовывать значения в формулы, если формула не требуется.

Извлеките первое слово с помощью функции поиска и замены

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

Предположим, у вас есть набор данных, подобный приведенным ниже:

Следующие шаги покажут, как использовать функцию «Найти и заменить», чтобы получить только первое слово и удалить все остальное:

  1. Скопируйте текст из столбца A в столбец B. Это необходимо, чтобы убедиться, что у нас также есть исходные данные.
  2. Выделите все ячейки в столбце B, в которых вы хотите получить первое слово.
  3. Перейдите на вкладку "Главная"
  4. В группе «Редактирование» нажмите «Найти и выбрать», а затем нажмите «Заменить». Откроется диалоговое окно «Найти и заменить».
  5. В поле "Найти" введите * (один пробел, за которым следует звездочка)
  6. Оставьте поле "Заменить на" пустым.
  7. Нажмите кнопку «Заменить все».

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

Вы также можете использовать сочетание клавиш Ctrl + H, чтобы открыть диалоговое окно Найти и заменить.

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

Для поля «Найти» мы использовали пробел, за которым следует звездочка. Звездочка (*) представляет собой неограниченное количество символов.

Читайте так же:
Как легко вводить даты без косой черты в Excel?

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

Он не будет работать, если в ячейке содержится только слово без пробелов или вообще нет текста.

Извлеките первое слово, используя флэш-заливку

Еще один очень простой и быстрый способ извлечения первого слова с помощью Flash Fill.

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

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

Ниже описаны шаги, которые необходимо предпринять:

  1. В ячейке B2, которая является соседним столбцом наших данных, введите вручную «Маркетинг» (что и является ожидаемым результатом).
  2. В ячейке B3 введите "HR".
  3. Выберите диапазон B2: B10
  4. Перейдите на вкладку "Главная"
  5. В группе «Редактирование» щелкните раскрывающееся меню «Заливка».
  6. Нажмите на опцию Flash Fill.

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

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

Примечание. Когда вы вводите ожидаемый результат во вторую ячейку столбца B, вы можете увидеть, что весь текст во всех ячейках окрашен в светло-серый цвет. Нажатие клавиши Enter сразу же приводит к такому результату. Возможно, вам придется воспользоваться кнопкой Flash Fill на ленте, чтобы увидеть серую линию.

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

Читайте так же:
Как найти и подсчитать повторяющиеся ячейки / значения в одной строке в Excel?

Как в Microsoft Excel работать с шестнадцатеричными числами.

16-битная текстовая строка, описывающая число, преобразуется в десятичное число (от 2-12) для выполнения математических операций над ним. Результат преобразуется в 16-битное представление и снова в текстовый формат. Перерыл всю справку — не нашел, похоже, что обрабатываются только десятичные числа. Может есть какие-то готовые макросы/плагины?

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

В обоих направлениях: Формула =DES. V. SHESTN(SHESTN. V. DES(D33) * SHESTN. В. DES(A33))?

В качестве примера можно взять следующую функцию:

Function hex2dec(hhh)
Dim d As Double, n As Integer

d = 0
hhh = trim(hhh) ‘удаляет пробелы с обеих сторон
For n = Len(hhh) To 1 Step -1
d = d + (Val(«&h» & Mid$(hhh, n, 1)) * (16 ^ (Len(hhh) — n)))
Next

hex2dec = d
End Function

На вход подается строка hhh, представляющая шестнадцатеричное число (например, ffffffffffffffffffffff ), на выход — результат (в данном случае это 2.81475E+14).

Но вам нужно будет убедиться, что входные данные не содержат неправильных данных. Например, «qwerty» будет переведено как 57344, что является шестнадцатеричным 00e000.

Более того, я не могу вспомнить, как сохранить эту функцию навсегда в списке функций Excel.

Wladimir_TS: Что-то весь хелп облазил — не нашел, только десятичное похоже представление обрабатывается
Мастак абсолютно прав: есть встроенные функции, они указаны в хелпе (ищутся по ключевому слову).

Функция ШЕСТН.В.ДЕС
Преобразует шестнадцатеричное число в десятичное.
Синтаксис
ШЕСТН.В.ДЕС(число)
Число — преобразуемое шестнадцатеричное число. Число не может содержать более 10 разрядов (40 бит). Самый старший бит числа является знаковым битом. Остальные 39 бит являются битами значения. Отрицательные числа записываются в дополнительных кодах.

kav: kav
Функция ШЕСТН.В.ДЕС
Преобразует шестнадцатеричное число в десятичное.

Читайте так же:
Как изменить цвет границы активной ячейки в Excel?

Хоть оно мне и не надо, попробовал. Результат — в хелпе есть, а когда скопипастил, как советует хелп, в ячейку, ругается : #ИМЯ. И в списке поддерживаемых функций нет.
Excel2003.
Хорошо, что оно мне не надо

А определить букву и в отдельной таблице «справочник» сделать, сравнить с таблицей и вернуть в десятичном виде, выполнить мат. операцию, сравнить с таблицей и вернуть 16?

Нет в списке поддерживаемых функций: Bul_d_Ozer.

Установка фра и распределение сæт.

Mastak: Установить из дистрибутива.
Да ну его. Ексель использую только для ведения «булгахтерии». Для серьезных вещей Дельфи удобнее.

Mastak: Mastak ◊
30 марта, 13:30
Bul_d_Ozer: в списке поддерживаемых функций нет.

Установить из дистрибутива.

И где он находится? Или это своего рода продолжение?

Bul_d_Ozer: Bul_d_Ozer ◊
31 марта, 00:07
Mastak: Установить из дистрибутива.
Да ну его. Ексель использую только для ведения «булгахтерии». Для серьезных вещей Дельфи удобнее.

К сожалению, это сложно.

Радиофорум — это сайт, посвященный обсуждению электроники, компьютеров и смежных тем.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector