
Используя 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.