Могу ли я использовать форматирование в Excel, чтобы заставить ячейку отображать входные данные в футах и ​​дюймах?

Могу ли я использовать форматирование в Excel, чтобы заставить ячейку отображать входные данные в футах и ​​дюймах?

Используя Excel, я хочу иметь возможность вводить число (представляющее дюймы) в ячейку и отображать его в футах и ​​дюймах. Например, если я ввожу 62 в ячейку A1, я хочу, чтобы ячейка A1 отображала 5' 2". Я знаю, как использовать формулу, чтобы взять ввод одной ячейки и преобразовать его в то, что мне нужно (т. е. =INT(A1/12)&"' "&MOD(A1,12)&""""). Но я хочу, чтобы преобразованная версия отображалась в той же ячейке, в которую был введен ввод (т. е. если я ввожу 62 в ячейку A1, я хочу, чтобы ячейка A1 отображала 5' 2"). Кажется, что форматирование может быть единственным способом сделать это, но я не смог понять, как. Спасибо!

решение1

Должно ли это быть обычное или условное форматирование? Если обычное, то вам нужно указать область, в которой вы хотите, чтобы оно работало. Если условное, то вам нужно указать условие срабатывания.
В обоих случаях вам нужно использовать VBA. Я предполагаю первый вариант (обычное форматирование) в диапазоне A1:C3. Будут отформатированы только положительные числа (отрицательные числа и 0 останутся неизменными).
В стандартном модуле поместите код функции:

Function FeetIn(data As Double) As String
   Dim ft As Long, inch As Double
   ft = Int(data / 12)
   inch = data - 12 * ft
   FeetIn = IIf(ft >= 1, ft & "' ", vbNullString) & _
            IIf(inch > 0, inch & "''", vbNullString)       ' two apostrophes
End Function

В модуле листа:

Private Sub Worksheet_Change(ByVal Target As Range)
   Set Target = Intersect(Target, Range("A1:C3"))
   If Target Is Nothing Then Exit Sub
   Application.EnableEvents = False
   Dim cell As Range
   For Each cell In Target
      If IsNumeric(cell.Value) Then
         cell.NumberFormat = """" & FeetIn(cell.Value) & """;-General;0;@"
      Else
         cell.NumberFormat = "General"
      End If
   Next cell
   Application.EnableEvents = True
End Sub

Футы_Дюймы

решение2

Форматирование без формулы требует использования встроенного формата.

В Excel есть формат для отображения в футах и ​​дюймах, где число футов находится перед точкой, а дюймы — в десятичной части.

Используйте «Формат ячеек...», категорию «Пользовательский» и введите следующую спецификацию формата: 0' 0\". Измените этот формат по мере необходимости.

Это максимум, что можно сделать с помощью форматирования Excel. Больше этого требует формулы, которую можно использовать только с дополнительным столбцом.

Для получения более подробной информации см. Пользовательские числовые форматы Excel.

Связанный контент