Как Разделить Число на Отдельные Цифры в Excel • Умножение чисел
JavaScript Число, разделенное на отдельные цифры
Я пытаюсь решить математическую задачу , в которой я беру число, например 45 или 111 , а затем разделяю число на отдельные цифры, например 4 5 или 1 1 1 . Затем я сохраню каждое число в var, чтобы запустить метод. Кто-нибудь знает, как разделить число на отдельные цифры?
Например, у меня есть цикл, который выполняется на массиве :
Для каждого числа я хотел бы разделить его цифры и сложить их вместе?
25 ответов
Мне нужно написать логику, чтобы разбить 4-значное число на отдельные цифры. На ответ здесь, в SO, на вопрос, касающийся 3 цифр, кто-то дал математику ниже: int first = 321/100; int second = (321/10)-first*10; int third = (321/1)-first*100-second*10; Кто-нибудь может мне помочь? Заранее благодарю.
Допустим, у меня есть целое число 9802, есть ли способ разделить это значение на четыре отдельные цифры: 9, 8, 0 & 2 ?
Вы также можете сделать это способом «mathematical», не рассматривая число как строку:
Один из плюсов, который я вижу, заключается в том, что вам не придется запускать parseInt() на каждой цифре, вы имеете дело с фактическими цифрами как с числовыми значениями.
Это самый короткий, который я нашел, хотя он возвращает цифры в виде строк:
Я приведу вариант уже данного ответа, чтобы вы могли увидеть другой подход, который все время сохраняет числовой тип:
Я использовал технику, подобную описанной выше, для хорошего эффекта при преобразовании числа в римские цифры, что является одним из моих любимых способов начать изучать язык программирования, с которым я не знаком. Например, вот как я придумал способ преобразования чисел в римские цифры с Tcl немного позже начала века: http://code.activestate.com/рецепты/68379-conversion-to-roman-numerals/
Программа предлагает пользователю ввести 2-значное десятичное число. Как разделить число на две отдельные переменные после того, как пользователь введет его? Позже мне нужно будет использовать первую и вторую части числа, чтобы они были в разных переменных.
В EXCEL VBA как я могу разделить целое число на отдельные цифры, которые затем могут быть обработаны математически, например целое число 123456789, разделенное на 1,2,3, 4, 5, 6, 7, 8, 9 тогда (1*8), (2*16), (3*32), и т. д.; 1*8, 2*16, 3*32-это просто примеры, фактические множители могут быть.
Для этого вы можете работать со строками вместо чисел. Ты можешь сделать это вот так
Это вернет массив строк [‘1′,’1′,’1’] , по которым вы можете выполнить итерацию и вызвать метод parseInt .
Если вам нужна сумма отдельных цифр, вы можете использовать функцию reduce (реализованную из Javascript 1.8) следующим образом
В ES6 вы можете использовать Array.from со строковым числом в качестве итераций и Number в качестве функции отображения.
Чтобы просто разделить целое число на отдельные цифры в том же порядке, я использовал и предпочитаю регулярное выражение, поскольку оно предотвращает вероятность потери идентичности чисел даже после того, как они были преобразованы в строку.
Следующая строка кода преобразует целое число в строку, использует regex для сопоставления любой отдельной цифры внутри строки и возвращает массив из них, после чего этот массив сопоставляется для преобразования обратно в числа.
Забавное введение в рекурсию. Этот ответ принимает число и возвращает массив числовых цифр. Он не преобразует число в строку в качестве промежуточного шага.
- n % 10 вернет первую (правую) цифру, 4
- n / 10 вернет 123 с некоторым остатком
- Используя Math.floor , мы можем отрезать оставшуюся часть
- Повторяя эти шаги, мы можем сформировать весь результат
Теперь нам просто нужно построить условие рекурсии,
В качестве альтернативы, используя . и reduce для получения цифр и их суммы.
Функциональный подход для того , чтобы получить цифры из number , состоял бы в том, чтобы получить string из вашего number , разделить его на array (символов) и сопоставить каждый элемент обратно в число.
Если вам также нужно суммировать все цифры, вы можете добавить метод reduce() к предыдущему коду:
В качестве альтернативы, с ECMAScript 2015 (6-е издание), вы можете использовать функции стрелок :
Если вам нужно суммировать все цифры, вы можете добавить метод reduce() к предыдущему коду:
javascript имеет функцию для этого, и вы можете легко использовать ее.
Вы можете сделать это в одной строке, отделить каждую цифру, а не складывать их вместе :
Похожие вопросы:
Я пытаюсь разбить Int на отдельные цифры, например от 3489 до 3 4 8 9, а затем я хочу поместить цифры в массив Int. Я уже пробовал поместить число в строку, а затем перебирать каждую цифру, но это.
Поэтому, если у меня, например, есть большое число, скажем 18750409. Я хотел бы разделить это число на отдельные цифры до 1,8,7,5,0,4,0,9. Но я не хочу распечатывать их сразу, я хотел бы хранить их.
Я пытаюсь разделить каждое число в установке типа hh:mm на отдельные цифры. Так что если бы время было 8:24, я бы так и сделал [0, 8, 2, 4]. Как бы я это сделал?
Мне нужно написать логику, чтобы разбить 4-значное число на отдельные цифры. На ответ здесь, в SO, на вопрос, касающийся 3 цифр, кто-то дал математику ниже: int first = 321/100; int second =.
Допустим, у меня есть целое число 9802, есть ли способ разделить это значение на четыре отдельные цифры: 9, 8, 0 & 2 ?
Программа предлагает пользователю ввести 2-значное десятичное число. Как разделить число на две отдельные переменные после того, как пользователь введет его? Позже мне нужно будет использовать.
В EXCEL VBA как я могу разделить целое число на отдельные цифры, которые затем могут быть обработаны математически, например целое число 123456789, разделенное на 1,2,3, 4, 5, 6, 7, 8, 9 тогда.
У меня есть большое число, например 265789 или 3654389 и т. д. Я хотел отобразить только первые три цифры этих чисел. Например, 265 или 365 в приведенных выше числах. Как разрезать эти большие числа.
Я пытаюсь разбить число, такое как 4378, на отдельные цифры, а затем сохранить его в переменной в виде строки. Кто-нибудь может помочь? x = 4378 #code to split number y = 4,3,7,8 Я видел ответы.
Я заметил, что здесь можно изменить число into на число, разделенное запятыми . Ловкий трюк! Мне было интересно, есть ли способ использовать формат, чтобы обратить это вспять, а не делать что-то.
Как разделить целое число на отдельные цифры в массиве в JavaScript? CodeRoad
- текст — это ФИО, в нашем примере это ячейка A2;
- начальная_позиция — в нашем случае это 1, то есть начиная с первой буквы;
- число_знаков — мы видим, что фамилия состоит из всех знаков, начиная с первой буквы и до 1-го пробела. А позиция первого пробела нам уже известна. Это и будет количество знаков минус 1 знак самого пробела.
Вот альтернатива ответу Николаса Фантона. Вы можете возразить, что это, возможно, немного менее читабельно. Акцент делается на том, что Array.from() может принимать в качестве параметра необязательную функцию карты. Таким образом, достигается некоторый прирост производительности, поскольку промежуточный массив не создается.
Как отделить текст от цифр в excel
Добрый день уважаемый читатель!
Разобрать слитый текст на необходимые составляющие возможно произвести с помощью:
Мастер разбора текстов
Рассмотрим самый простой способ разделить текст в ячейке, не по сути, а по исполнению. Для примера, очень наглядно это можно продемонстрировать на ФИО в одной ячейке, которые необходимо разделить на отдельные столбики для удобства сортировки и фильтрации.
Для выполнения задачи вызываем диалоговое окно «Мастер текстов (разбор)» и в 3 шага разделяем текст:
В случае, когда будете использовать символы, которые не похожи на стандартные, назначенные в региональных настройках, можете использовать кнопку «Подробнее» для правильного их распознавания.
Рассоединяем текст с помощью формул
Для этого способа нам понадобятся возможности сочетаний функций ПОИСК и ПСТР. При помощи функции ПОИСК мы будем искать все пробелы, которые есть между словами (например, между фамилией, именем и отчеством). Потом функцией ПСТР выделяем необходимое количество символов для дальнейшего разделения.
И если с первыми двумя словами понятно, что и как разделять, то разделителя для последнего слова нет, а это значит что нужно указать в качестве аргумента условно большое количество символов, как аргумент «число_знаков» для функции ПСТР, например, 100, 200 или больше.
А теперь поэтапно рассмотрим формирование формулы для разделения текста в ячейке:
- Во-первых, нам необходимо найти два пробела, которые разделяют наши слова, для поиска первого пробела нужна формула: =ПОИСК(» «;B2;1), а для второго подойдет: =ПОИСК(» «;B2;C2+1);
- Во-вторых, определяем, сколько символов нужно выделить в строке. Поскольку позиции разделителя мы уже определили, то символов для разделения у нас будет на один меньше. Значит, будем использовать функцию ПСТР для изъятия слов, с ячейки используя как аргумент «количество_знаков» результат работы предыдущей формулы. Для определения первого слова (Фамилии) нужна формула: =ПСТР(B2;1;ПОИСК(» «;B2;1)), для определения второго значения (Имя): =ПСТР(B2;ПОИСК(» «;B2;1)+1;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1) -ПОИСК(» «;B2;1)), а теперь определим последнее значение (Отчество): =ПСТР(B2;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1)+1;100).
В результате мы разделили ФИО на три слова, что позволит с ними эффективно работать.
Если же значение в ячейке будете делить на две части, то ищете только один пробел (или иной разделитель), а вот чтобы разделить более 4 слов, в формулу добавьте поиск необходимых разделителей.
Выдергиваем слова с помощью макросов VBA
Поскольку вас интересует автоматическое деление текста, значит надо написать хорошую функцию на VBA и внедрить ее в рабочую книгу. Для начала переходим на вкладку «Разработчик» и выбираем «Visual Basic» или вызываем эту возможность с помощью горячего сочетания клавиш Alt+F11. (детальнее в статье «Как создать макрос в Excel»).
Создаем новый модуль в меню «Insert» наживаем пункт «Module» и переносим в него нижеприведенный код:
В этом курсе:
С помощью мастера распределения текста по столбцам текст, содержащийся в одной ячейке, можно разделить на несколько.
Выделите ячейку или столбец с текстом, который вы хотите разделить.
На вкладке Данные нажмите кнопку Текст по столбцам.
В мастере распределения текста по столбцам установите переключатель с разделителями и нажмите кнопку Далее.
Выберите разделители для своих данных. Например, запятую и пробел. Данные можно предварительно просмотреть в окне Образец разбора данных.
Выберите значение в разделе Формат данных столбца или используйте то, которое Excel выберет автоматически.
В поле Поместить в выберите место на листе, где должны отображаться разделенные данные.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 763шт.». Вам нужно из этого только 763 — чтобы можно было провести с этим некие математические действия. Если это только одна ячейка — проблем тут нет, а если таких ячеек пару тысяч? И к тому же все разные?
Никакой зацепки для извлечения данных. Пару тысяч таких строк удалять вручную весьма утомительное занятие, надо сказать. Да еще и не быстрое.
Есть несколько вариантов решения подобной задачи.
СПОСОБ 1: не используем макросы
можно применить формулу массива, вроде такой:
=ПСТР( A1 ;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))+1)
Три важных момента:
- Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
- в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА( $1:$99 ) на СТРОКА( $1:$200 ) . Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
- формула не обработает корректно текст » Было доставлено кусков мыла 763шт., а заказывали 780 » и ему подобный, где числа раскиданы по тексту.
Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.
- в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
- блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))
вычисляет позицию первой цифры в ячейке — 29 - блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))
вычисляет позицию последней цифры в ячейке — 31 - в результате получается: =ПСТР( A1 ;29;31—29+1)
функция ПСТР извлекает из текста, указанного первым аргументом( A1 ) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(31—29+1) - И в итоге:
=ПСТР( A1 ;29;31—29+1)
=> =ПСТР( A1 ;29;2+1)
=> =ПСТР( A1 ;29;3)
=> 763
Подробнее про создание пользовательских функции и их применении можно почитать в статье Что такое функция пользователя(UDF)?
Помимо функции пользователя решил выложить и вариант с использованием диалогового окна:
Выбрать ячейку или диапазон с текстом(Лист1! $A$2:$A$10 ) — здесь указывается диапазон с исходными значениями, из которого необходимо оставить только числа или только текст.
Оставить только цифры, Оставить только текст— думаю не надо пояснять. Здесь выбираем, что оставить в качестве результата.
Небольшое дополнение к использованию кода
В коде есть строка:
Данная строка отвечает за текстовые символы, которые могут встречаться внутри чисел и которые надо оставить(не удалять наравне с другими не числовыми символами). Следовательно, если какие-то из данных символов не нужны в конечном тексте — их надо просто удалить. Например, чтобы оставались исключительно числа(без запятых и пр.):
если надо исключить из удаления помимо цифр точку(т.е. будут извлечены цифры и точка):
Число из текста и наоборот.xls (99,0 KiB, 12 871 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Поиск по меткам
Здравствуйте скрипт при обработке ячейки:
Пр-ка ТНВД 5301 (пер.) 50-1006315-Б2 выдает: 530150-1006315-2
вопрос есть возможность что бы он брал только последних 15-20 сим.
с заглавными А-Я, или хотя бы цифирки.
Буду признателен за предложения.
Возможно есть проще варианты(12000 стр.записеи) обрезани до последних 10-20сим.
Александр, последние 15-20 символов можно взять при помощи функции ПРАВСИМВ(RIGHT). Так же можно совместить:
=Extract_Number_from_Text(ПРАВСИМВ(A1))
Более сложные вариации извлечения делаются под конкретные данные с учетом различных нюансов.
Добрый день!
Спасибо за замечательный код! Подскажите пожалуйста, как оставить среди неудаляемых символов пробел?
Например, в ячейке было «Т-образный поворот SPB-RF60 TE-200 SS316L».
Ваш код оставляет (после некоторой модификации) «60200316».
А хотелось бы «60 200 316».
Я не понимаю как вписать пробел в строку
Like «*[0-9.,;:-]*» Then
А всё разобрался, пробел нужно указывать в середине ряда, а не в конце.
Здравствуйте.
Использовал функцию, вызванную на VBA, все нормально, при вызове мастера функций он нормально отрабатывает
Но при выполнение в эксель, выскакивает сообщение, что здесь используется циклическая ссылка и потом появляется значение 0. В чем дело?
Добрый день!
А что надо добавить в код/формулу чтобы из строки
«ТП ВЕТЧИННАЯ ВАРЕНАЯ 400Г (162854) /Ш/»
— вытащить только цифры до буквы Г?
— или без содержимого скобок
Заранее большое спасибо!
И играйтесь регулярками, на лету выбирая нужные части текста. Инфы с примерами, благо, достаточно.
Как написать формулу деления в excel — Компьютерный журнал
- n % 10 вернет первую (правую) цифру, 4
- n / 10 вернет 123 с некоторым остатком
- Используя Math.floor , мы можем отрезать оставшуюся часть
- Повторяя эти шаги, мы можем сформировать весь результат
Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 763шт.». Вам нужно из этого только 763 — чтобы можно было провести с этим некие математические действия. Если это только одна ячейка — проблем тут нет, а если таких ячеек пару тысяч? И к тому же все разные?
Как разделить целое число на отдельные цифры в массиве в JavaScript?
Если кто-то может увидеть проблему или найти лучшее решение, я был бы очень признателен!
20 ответов
Программа предлагает пользователю ввести 2-значное десятичное число. Как разделить число на две отдельные переменные после того, как пользователь введет его? Позже мне нужно будет использовать первую и вторую части числа, чтобы они были в разных переменных.
Я понимаю, что этот вопрос был задан несколько месяцев назад, но у меня есть дополнение к ответу samccone, которое является более кратким, но у меня нет представителя, чтобы добавить его в качестве комментария!
Немного изменил приведенный выше ответ. На самом деле нам не нужно явно вызывать метод ‘map’, потому что он уже встроен в «Array.from» в качестве второго аргумента. По состоянию на MDN .
Это довольно короткое время, используя деконструкцию и шаблоны строку :
Это очень просто: сначала преобразуйте число в строку с помощью метода toString() в JavaScript, а затем используйте метод split() для преобразования строки в массив отдельных символов.
Вы можете получить список строк из вашего номера, преобразовав его в строку, а затем разделив ее пустой строкой. Результатом будет массив строк, каждая из которых содержит цифру:
OR чтобы построить это, сопоставьте каждую строковую цифру и преобразуйте их в Number :
В EXCEL VBA как я могу разделить целое число на отдельные цифры, которые затем могут быть обработаны математически, например целое число 123456789, разделенное на 1,2,3, 4, 5, 6, 7, 8, 9 тогда (1*8), (2*16), (3*32), и т. д.; 1*8, 2*16, 3*32-это просто примеры, фактические множители могут быть.
можете ли вы помочь мне понять, как вычислить этот способ, например, у меня есть какое-то целое число: сначала мне нужно условие если (x < 10), чтобы избежать просчета для одиночных чисел теперь, если число содержит более 1 цифры, нужно вычислить его вторым способом, например, я получил 134.
Вот альтернатива ответу Николаса Фантона. Вы можете возразить, что это, возможно, немного менее читабельно. Акцент делается на том, что Array.from() может принимать в качестве параметра необязательную функцию карты. Таким образом, достигается некоторый прирост производительности, поскольку промежуточный массив не создается.
Это будет работать для числа, большего 0. Вам не нужно преобразовывать число в строку:
Для этого вопроса прошло более 5 лет, но он всегда приветствует эффективные способы coding/scripting.
Здесь другой метод. Поскольку число в Javascript по умолчанию не разбивается, сначала необходимо преобразовать число в строку.
Похожие вопросы:
Я пытаюсь решить математическую задачу , в которой я беру число, например 45 или 111 , а затем разделяю число на отдельные цифры, например 4 5 или 1 1 1 . Затем я сохраню каждое число в var, чтобы.
Допустим, у меня есть целое число 9802, есть ли способ разделить это значение на четыре отдельные цифры: 9, 8, 0 & 2 ?
Итак у меня есть задание в котором говорится что у меня есть строка чисел например 1234 4014 5555 7654 скажите, что это, по сути, номер кредитной карты. Они просят меня преобразовать строку цифр в.
Программа предлагает пользователю ввести 2-значное десятичное число. Как разделить число на две отдельные переменные после того, как пользователь введет его? Позже мне нужно будет использовать.
В EXCEL VBA как я могу разделить целое число на отдельные цифры, которые затем могут быть обработаны математически, например целое число 123456789, разделенное на 1,2,3, 4, 5, 6, 7, 8, 9 тогда.
можете ли вы помочь мне понять, как вычислить этот способ, например, у меня есть какое-то целое число: сначала мне нужно условие если (x < 10), чтобы избежать просчета для одиночных чисел теперь.
Я нахожусь в самом начале программирования, и мне нужна помощь в этом. Как я могу превратить целое число 123 в 1 2 3 в отдельные строки , Если вы меня понимаете? Спасибо
Я пытаюсь разбить число, такое как 4378, на отдельные цифры, а затем сохранить его в переменной в виде строки. Кто-нибудь может помочь? x = 4378 #code to split number y = 4,3,7,8 Я видел ответы.
Я пытаюсь создать аддитивную программу персистентности , в которой пользователь вводит число, а программа выводит общее количество итераций (или аддитивную персистентность). Я хочу закодировать его.
Как сделать функцию деления в excel?
- Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
- в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА( $1:$99 ) на СТРОКА( $1:$200 ) . Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
- формула не обработает корректно текст » Было доставлено кусков мыла 763шт., а заказывали 780 » и ему подобный, где числа раскиданы по тексту.
можете ли вы помочь мне понять, как вычислить этот способ, например, у меня есть какое-то целое число: сначала мне нужно условие если (x < 10), чтобы избежать просчета для одиночных чисел теперь, если число содержит более 1 цифры, нужно вычислить его вторым способом, например, я получил 134.
Публикуя свою персональную информацию в открытом доступе на нашем сайте вы, даете согласие на обработку персональных данных и самостоятельно несете ответственность за содержание высказываний, мнений и предоставляемых данных. Мы никак не используем, не продаем и не передаем ваши данные третьим лицам.