Как изменить число

Блог

Как мне изменить число на странице сайта на диапазон чисел?

На сайте есть блок «Сколько сейчас людей онлайн». Как мне сделать на JS или jQuery замену этого текста и показывать число рандомно от 1500 до 2000. Делать за меня не надо просто дайте направление. Заранее спасибо.

Направление:$(‘div’). text(Math. random());

ВашHR

Нахабино, пгт

от 100 000 ₽

20 сент. 2022, в 09:34

150000 руб. /за проект

20 сент. 2022, в 09:26

500 руб. /в час

20 сент. 2022, в 09:16

1000 руб. /в час

Чтобы было максимально легко разобраться, я постарался лишь модифицировать ваш пример:

Добавилось 2 параметра:

Хочу отметить, что тут имеется весьма забавный. ммм «артефакт».

Так как регулярное выражение тут требует доработки, переданная строка, например такая, тоже отработает и выведет нужный результат:

console. log(incrementString(‘1f2o3o’, 3));

Я специально назвал это «артефактом», так как кто-то может расценить это как фичу, а кто-то как баг =)

UPD после комментариев

Этот код в виде функции:

incrementDigits(0. 521512); //> 0. 521513

Тупо. без учёта того, что там может быть девятка на конце

UPD по замечанию из комментов:

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

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

Более глубокое знание форматов временных показателей поможет вам сэкономить массу времени. И это как раз цель нашего подробного руководства. Мы сосредоточимся на следующих моментах:

  • Что такое формат даты
  • Формат даты по умолчанию
  • Как поменять формат даты
  • Как изменить язык даты
  • Создание собственного формата отображения даты
  • Дата в числовом формате
  • Время в числовом формате
  • Создание пользовательского формата времени
  • Формат Дата — Время
  • Почему не работает? Проблемы и их решение.

Формат даты в ExcelExcel хранит даты как последовательные числа, и только форматирование ячейки приводит к тому, что число отображается как дата, как время или и то, и другое вместе. Дата в ExcelВсе даты хранятся в виде целых чисел, обозначающих количество дней с 1 января 1900 г. (записывается как 1) до 31 декабря 9999 г. (сохраняется как 2958465). В этой системе:

  • 2 — 2 января 1900 г.
  • 44197 — 1 января 2021 г. (потому что это 44 197 дней после 1 января 1900 г.)

Время в ExcelВремя хранится в виде десятичных дробей от 0,0 до 0,99999, которые представляют собой долю дня, где 0,0 — 00:00:00, а 0,99999 — 23:59:59.

  • 0.25 — 06:00
  • 0.5 — 12:00.
  • 0.541655093 это 12:59:59.

Дата и время в ExcelДата и время хранятся в виде десятичных чисел, состоящих из целого числа, представляющего день, месяц и год, и десятичной части, представляющей время. Например: 44197. 5 — 1 января 2021 г. , 12:00. Формат даты по умолчанию в Excel и как его быстро изменитьКраткий и длинный форматы даты, которые как раз и установлены по умолчанию как основные, извлекаются из региональных настроек Windows. Они отмечены звездочкой (*) в диалоговом окне:

Они изменяются, как только вы меняете настройки даты и времени в панели управления Windows. Если вы хотите установить другое представление даты и/или времени по умолчанию на своем компьютере, например, изменить их с американского на русское, перейдите в Панель управления и нажмите “Региональные стандарты»  > «Изменение форматов даты, времени и чисел». На вкладке Форматы выберите регион, а затем установите желаемое отображение, щелкнув стрелку рядом с пунктом, который вы хотите изменить, и выбрав затем наиболее подходящий из раскрывающегося списка:

Как быстро применить форматирование даты и времени по умолчаниюКак мы уже уяснили, в Microsoft Excel есть два формата даты и времени по умолчанию — короткий и длинный. Чтобы быстро изменить один из них, сделайте следующее:

Откроется знакомое диалоговое окно “Формат ячеек”, в котором вы сможете изменить любые нужные вам параметры. Об этом и пойдёт речь далее. Как изменить формат даты в ExcelДаты могут отображаться разными способами. Когда дело доходит до изменения их вида для данной ячейки или диапазона, самый простой способ — открыть диалоговое окно ”Формат ячеек” и выбрать один из имеющихся там стандартных вариантов.

  • Выберите данные, которые вы хотите изменить, или пустые ячейки, в которые вы хотите вставить даты.
  • Нажмите Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». Кроме того, вы можете кликнуть выделенные ячейки правой кнопкой мыши и выбрать этот пункт в контекстном меню.
  • В окне “Формат ячеек» перейдите на вкладку “Число” и выберите “Дата» в списке числовых форматов.
  • В разделе “Тип» выберите наиболее подходящий для вас вариант. После этого в поле “Образец» отобразится предварительный просмотр в выбранном варианте оформления.

Если, несмотря на ваши усилия, отображение числа, месяца и года в вашей таблице не меняется, скорее всего, ваши данные записаны как текст, и вам сначала нужно преобразовать их в формат даты. Как сменить язык даты. Если у вас есть файл, полный иностранных дат, вы, скорее всего, захотите изменить их те, которые используются в вашей стране. Допустим, вы хотите преобразовать американский формат (месяц/день/год) в европейский стиль (день/месяц/год). Самый простой способ сделать это заключается в следующем:

  • Выберите столбец, который вы хотите преобразовать в другой язык.
  • Используйте комбинацию Ctrl + 1, чтобы открыть знакомые нам настройки.
  • Выберите нужный язык в выпадающем списке «Язык (местоположение)» и нажмите «ОК», чтобы сохранить изменения.

Создание пользовательского формата даты. Если вам не подходит ни один из стандартных вариантов, вы можете создать свой собственный.

  • На листе выделите нужные ячейки.
  • На вкладке Число выберите Все форматы в списке и запишите нужный формат даты в поле Тип. Это показано на скриншоте ниже.
  • Щелкните ОК, чтобы сохранить изменения.

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

При создании пользовательского формата в Excel вы можете использовать запятую (,), тире (-), косую черту (/), двоеточие (:) и другие символы. Как создать собственный формат даты для другого языкаЕсли вы хотите отображать даты на другом языке, не меняя региональные настройки своего Windows, придётся создать собственный формат и использовать специальный префикс с соответствующим кодом языкового стандарта.

Вы можете найти полный список кодов языков в этом блоге. Например, вот как это можно настроить для белорусского языка в формате времени  -день-месяц-год (день недели) :

Как показать число вместо даты. Если вы хотите узнать, какое число представляет определенную дату или время, отображаемые в ячейке, вы можете сделать это двумя способами. Диалоговое окно «Форматирование ячеек»Выделите эту ячейку, нажмите Ctrl + 1, чтобы открыть знакомое нам окно настроек и переключиться на вкладку «Общие». Если вы просто хотите узнать число, стоящее за датой, ничего не меняя в вашей таблице, то запишите число, которое вы видите в поле «Образец», и нажмите “Отмена», чтобы закрыть окно. Если вы хотите заменить дату числом в текущей ячейке, нажмите ОК.

= ДАТАЗНАЧ(«20/1/2021») & ВРЕМЗНАЧ(«16:30»)

Получится записанное в виде текста число, соответствующее дате-времени.

= ДАТАЗНАЧ(«20/1/2021») + ВРЕМЗНАЧ(«16:30»)

То получим число, которое можно отформатировать в виде даты-времени и с которым можно производить математические операции (найти разность дат и т. )Если вы запишете, скажем, 31. 1812, то это будет текстовое значение, а не дата. Это означает, что вы не сможете выполнять обычные арифметические операции с ней. Чтобы убедиться в этом, можете ввести формулу =ДАТАЗНАЧ(«31/12/1812») в какую-нибудь ячейку, и вы получите ожидаемый результат — ошибку #ЗНАЧ!. Формат времени в ExcelЕсли помните, выше мы уже говорили, что Excel обрабатывает время как часть дня, и время сохраняется как десятичная часть.

  • 00:00:00 сохраняется как 0,0
  • 23:59:59 сохраняется как 0,99999
  • 06:00 — 0,25
  • 12:00 — 0,5

Когда в ячейку вводятся и дата, и время, они сохраняются как десятичное число, состоящее из целой части, представляющего дату, и десятичной части, представляющей время. Формат времени по умолчанию. При изменении формата времени в диалоговом окне ”Формат ячеек” вы могли заметить, что один из пунктов начинается со звездочки (*). Это формат времени по умолчанию в вашем Excel. Как и в случае с датой, он определяется региональными настройками Windows.

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

Изменить формат времени по умолчанию, перейдите в Панель управления и перейдите “Региональные стандарты»  > «Изменение форматов даты, времени и чисел». Подробно мы этот процесс описали выше, когда рассматривали установки параметров даты по умолчанию. Десятичное представление времени. Быстрый способ выбрать десятичное число, представляющее определенное время, — использовать диалоговое окно ”Формат ячеек”. Просто выберите ячейку, содержащую время, и нажмите Ctrl + 1, чтобы открыть окно настроек. На вкладке “Число” выберите “Общие» в разделе “Категория», и вы увидите десятичную дробь в поле “Образец».

Теперь вы можете записать это число и нажать “Отмена», чтобы закрыть окно. Или же нажмите OK и замените время соответствующим десятичным числом в ячейке. Фактически это самый быстрый, простой и не требующий формул способ преобразования времени в десятичное число. Как применить или изменить формат времени. Microsoft Excel достаточно умен, чтобы распознавать время при вводе и соответствующем форматировании ячейки. Например, если вы наберете 10:30 или 18:40, программа будет воспринимать и отображать это как время в зависимости от установленного по умолчанию формата времени. Если вы хотите отформатировать некоторые числа как время или применить другой формат времени к существующим значениям, вы можете сделать это с помощью диалогового окна ”Формат ячеек”, как описано ниже.

На вкладке “Число” выберите “Время» в списке и укажите подходящий образец в окне “Тип». Нажмите OK, чтобы применить выбранное.

Создание пользовательского формата времени. Хотя Microsoft Excel предоставляет несколько различных форматов времени, вы можете создать свой собственный, который лучше всего подходит для конкретной задачи. Для этого откройте знакомое нам окно настроек, выберите “Все форматы» и введите подходящее время в поле “Тип».

Созданный вами пользовательский формат времени останется в списке Тип в следующий раз, когда он вам понадобится. Совет. Самый простой способ создать собственный формат времени – использовать один из существующих в качестве отправной точки. Для этого щелкните “Время» в списке «Категория» и выберите один из предустановленных форматов. После этого внесите в него изменения. При этом вы можете использовать следующие коды. Когда вы рассчитываете, к примеру, табель рабочего времени, то сумма может превысить 24 часа. Чтобы Microsoft Excel правильно отображал время, выходящее за пределы суток, примените один из следующих настраиваемых форматов времени. На скриншоте ниже – отображение одного и того же времени разными способами.

Пользовательские форматы для отрицательных значений времениПользовательские форматы времени, описанные выше, работают только для положительных значений. Если результат ваших вычислений представляет собой отрицательное число, отформатированное как время (например, когда вы вычитаете большее количество времени из меньшего), результат будет отображаться как #####. И увеличение ширины столбца не поможет избавиться от этих решёток. Если вы хотите обозначить отрицательные значения времени, вам доступны следующие параметры:

Если вы хотите отображать отрицательные значения времени именно как отрицательные значения, например -11:15, самый простой способ — изменить систему дат Excel на систему 1904 года. Для этого щелкните Файл> Параметры> Дополнительно, прокрутите вниз до раздела Вычисления и установите флажок Использовать систему дат 1904. Формат «Дата – Время». Если нужно показать и дату, и время, вы можете просто объединить в единое целое те форматы, о которых мы говорили выше. На скриншоте ниже вы видите несколько вариантов, как могут выглядеть ваши значения:

=ТЕКСТ(ABS(B1-C1);»-ДД ММ ГГГГ»)

8 способов разделить ячейку Excel на две или несколько

Исправление чисел, превратившихся в даты

При импорте в Excel данных из внешних программ, иногда возникает весьма неприятная проблема — дробные числа превращаются в даты:

Так обычно происходит, если региональные настройки внешней программы не совпадают с региональными настройками Windows и Excel. Например, вы загружаете данные с американского сайта или европейской учётной системы (где между целой и дробной частью — точка), а в Excel у вас российские настройки (где между целой и дробной частью — запятая, а точка используется как разделитель в дате).

При импорте Excel, как положено, пытается распознать тип входных данных и следует простой логике — если что-то содержит точку (т. российский разделитель дат) и похоже на дату — оно будет конвертировано в дату. Всё, что на дату не похоже — останется текстом.

Давайте рассмотрим все возможные сценарии на примере испорченных данных на картинке выше:

  • В ячейке A1 исходное число 153.4182 осталось текстом, т.к. на дату совсем не похоже (не бывает 153-го месяца)
  • В ячейке A2 число 5.1067 тоже осталось текстом, т.к. в Excel не может быть даты мая 1067 года — самая ранняя дата, с которой может работать Excel — 1 января 1900 г.
  • А вот в ячейке А3 изначально было число 5.1987, которое на дату как раз очень похоже, поэтому Excel превратил его в 1 мая 1987, услужливо добавив единичку в качестве дня:
  • То же самое случилось и в ячейке А4, где изначально было число 12.6923. Причем 6923-й год Excel тут нисколько не смутил — для него главное, чтобы дата была не раньше 1900 года. Так что добро пожаловать в далекое будущее:
  • Единственное, что распознаётся корректно — это числа без дробной части (число 1000 в ячейке А6). И на том спасибо 🙂

Вот такие варианты. И если текстовые числа ещё можно вылечить банальной заменой точки на запятую, то с числами превратившимися в даты такой номер уже не пройдет. А попытка поменять их формат на числовой выведет нам уже не исходные значения, а внутренние коды дат Excel — количество дней от 01. 1900 до текущей даты:

Лечится вся эта история тремя принципиально разными способами.

Способ 1. Заранее в настройках

Если данные ещё не загружены, то можно заранее установить точку в качестве разделителя целой и дробной части через Файл — Параметры — Дополнительно (File — Options — Advanced):

Снимаем флажок Использовать системные разделители (Use system separators) и вводим точку в поле Разделитель целой и дробной части (Decimal separator).

После этого можно смело импортировать данные — проблем не будет.

Способ 2. Формулой

Если данные уже загружены, то для получения исходных чисел из поврежденной дата-тексто-числовой каши можно использовать простую формулу:

=—ЕСЛИ(ЯЧЕЙКА(«формат»;A1)=»G»; ПОДСТАВИТЬ(A1;». «;»,»); ТЕКСТ(A1;»М,ГГГГ»))

В английской версии это будет:

=—IF(CELL(«format»;A1)=»G»; SUBSTITUTE(A1;». «;»,»); TEXT(A1;»M,YYYY»))

Логика здесь простая:

  • Функция ЯЧЕЙКА определяет числовой формат исходной ячейки и выдаёт в качестве результата «G» для текста/чисел или «D3» для дат.
  • Если в исходной ячейке текст, то выполняем замену точки на запятую с помощью функции ПОДСТАВИТЬ .
  • Если в исходной ячейке дата, то выводим её в формате «номер месяца — запятая — номер года» с помощью функции ТЕКСТ .

Способ 3. Макросом

Если подобную процедуру лечения испорченных чисел приходится выполнять часто, то имеет смысл автоматизировать процесс макросом. Для этого жмём сочетание клавиш Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer), вставляем в нашу книгу новый пустой модуль через меню Insert — Module и копируем туда такой код:

Sub Fix_Numbers_From_Dates()
Dim num As Double, cell As Range

For Each cell In Selection
If Not IsEmpty(cell) Then
If cell. NumberFormat = «General» Then
num = CDbl(Replace(cell, «. «, «,»))
Else
num = CDbl(Format(cell, «m,yyyy»))
End If
cell. Clear
cell. Value = num
End If
Next cell
End Sub

Останется выделить проблемные ячейки и запустить созданный макрос сочетанием клавиш Alt+F8 или через команду Макросы на вкладке Разработчик (Developer — Macros). Все испорченные числа будут немедленно исправлены.

Ссылки по теме

  • Как Excel на самом деле работает с датами и временем
  • Замена текста функцией ПОДСТАВИТЬ
  • Функция ВПР и числа-как-текст

Преобразование чисел-как-текст в нормальные числа

Если для каких-либо ячеек на листе был установлен текстовый формат (это мог сделать пользователь или программа при выгрузке данных в Excel), то введенные потом в эти ячейки числа Excel начинает считать текстом. Иногда такие ячейки помечаются зеленым индикатором, который вы, скорее всего, видели:

Причем иногда такой индикатор не появляется (что гораздо хуже).

В общем и целом, появление в ваших данных чисел-как-текст обычно приводит к большому количеству весьма печальных последствий:

Особенно забавно, что естественное желание просто изменить формат ячейки на числовой — не помогает. вы, буквально, выделяете ячейки, щелкаете по ним правой кнопкой мыши, выбираете Формат ячеек (Format Cells), меняете формат на Числовой (Number), жмете ОК — и ничего не происходит! Совсем!

Возможно, «это не баг, а фича», конечно, но нам от этого не легче. Так что давайте-к рассмотрим несколько способов исправить ситуацию — один из них вам обязательно поможет.

Способ 1. Зеленый уголок-индикатор

Если на ячейке с числом с текстовом формате вы видите зеленый уголок-индикатор, то считайте, что вам повезло. Можно просто выделить все ячейки с данными и нажать на всплывающий желтый значок с восклицательным знаком, а затем выбрать команду Преобразовать в число (Convert to number):

Все числа в выделенном диапазоне будут преобразованы в полноценные.

Если зеленых уголков нет совсем, то проверьте — не выключены ли они в настройках вашего Excel (Файл — Параметры — Формулы — Числа, отформатированные как текст или с предшествующим апострофом).

Способ 2. Повторный ввод

Если ячеек немного, то можно поменять их формат на числовой, а затем повторно ввести данные, чтобы изменение формата вступило-таки в силу. Проще всего это сделать, встав на ячейку и нажав последовательно клавиши F2 (вход в режим редактирования, в ячейке начинает мигаеть курсор) и затем Enter. Также вместо F2 можно просто делать двойной щелчок левой кнопкой мыши по ячейке.

Само-собой, что если ячеек много, то такой способ, конечно, не подойдет.

Способ 3. Формула

Можно быстро преобразовать псевдочисла в нормальные, если сделать рядом с данными дополнительный столбец с элементарной формулой:

Двойной минус, в данном случае, означает, на самом деле, умножение на -1 два раза. Минус на минус даст плюс и значение в ячейке это не изменит, но сам факт выполнения математической операции переключает формат данных на нужный нам числовой.

Само-собой, вместо умножения на 1 можно использовать любую другую безобидную математическую операцию: деление на 1 или прибавление-вычитание нуля. Эффект будет тот же.

Способ 4. Специальная вставка

Этот способ использовали еще в старых версиях Excel, когда современные эффективные менеджеры под стол ходили  зеленого уголка-индикатора еще не было в принципе (он появился только с 2003 года). Алгоритм такой:

  • скопируйте ее
  • выделите ячейки с числами в текстовом формате и поменяйте у них формат на числовой (ничего не произойдет)
  • щелкните по ячейкам с псевдочислами правой кнопкой мыши и выберите команду Специальная вставка или используйте сочетание клавиш Ctrl+Alt+V
  • в открывшемся окне выберите вариант Значения и Умножить

По-сути, мы выполняем то же самое, что и в прошлом способе — умножение содержимого ячеек на единицу — но не формулами, а напрямую из буфера.

Способ 5. Текст по столбцам

Если псеводчисла, которые надо преобразовать, вдобавок еще и записаны с неправильными разделителями целой и дробной части или тысяч, то можно использовать другой подход. Выделите исходный диапазон с данными и нажмите кнопку Текст по столбцам (Text to columns) на вкладке Данные (Data). На самом деле этот инструмент предназначен для деления слипшегося текста по столбцам, но, в данном случае, мы используем его с другой целью.

Пропустите первых два шага нажатием на кнопку Далее (Next), а на третьем воспользуйтесь кнопкой Дополнительно (Advanced). Откроется диалоговое окно, где можно задать имеющиеся сейчас в нашем тексте символы-разделители:

После нажатия на Готово Excel преобразует наш текст в нормальные числа.

Способ 6. Макрос

Если подобные преобразования вам приходится делать часто, то имеет смысл автоматизировать этот процесс при помощи несложного макроса. Нажмите сочетание клавиш Alt+F11 или откройте вкладку Разработчик (Developer) и нажмите кнопку Visual Basic. В появившемся окне редактора добавьте новый модуль через меню Insert — Module и скопируйте туда следующий код:

Sub Convert_Text_to_Numbers()
Selection. NumberFormat = «General»
Selection. Value = Selection. Value
End Sub

Теперь после выделения диапазона всегда можно открыть вкладку Разрабочик — Макросы (Developer — Macros), выбрать наш макрос в списке, нажать кнопку Выполнить (Run) — и моментально преобразовать псевдочисла в полноценные.

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

С датами бывает та же история. Некоторые даты тоже могут распознаваться Excel’ем как текст, поэтому не будет работать группировка и сортировка. Решения — те же самые, что и для чисел, только формат вместо числового нужно заменить на дату-время.

  • Деление слипшегося текста по столбцам
  • Вычисления без формул специальной вставкой
  • Преобразование текста в числа с помощью надстройки PLEX
Оцените статью
Devaisov.ru - интернет-журнал о технике и программах
Добавить комментарий