У меня есть таблица Excel с такими данными, как:
ColumnA ColumnB
33 11
25 5
6 4
Я хотел бы добавить третий столбец, который показывает отношение столбцаА к столбцуВ в формате A:B. Например:
ColumnA ColumnB Ratio
33 11 3:1
25 5 5:1
6 4 3:2
Кто-нибудь знает, как этого добиться?
Заранее спасибо.
Попробуйте эту формулу:
=SUBSTITUTE(TEXT(A1/B1,"?/?"),"/",":")
Результат:
A B C
33 11 3:1
25 5 5:1
6 4 3:2
Объяснение:
Это не требует никаких специальных наборов инструментов или макросов. Единственным недостатком может быть то, что результат считается текстом, а не числом, поэтому вы можете легко использовать его для дальнейших вычислений.
Примечание: как предложил @Robin Day, увеличьте количество вопросительных знаков (?) по желанию, чтобы уменьшить округление (спасибо Robin!).
Вы ищете наибольший общий делитель (GCD).
Вы можете вычислить его рекурсивно в VBA, например, так:
Function GCD(numerator As Integer, denominator As Integer)
If denominator = 0 Then
GCD = numerator
Else
GCD = GCD(denominator, numerator Mod denominator)
End If
End Function
И использовать его в листе следующим образом:
ColumnA ColumnB ColumnC
1 33 11 =A1/GCD(A1; B1) & ":" & B1/GCD(A1; B1)
2 25 5 =A2/GCD(A2; B2) & ":" & B2/GCD(A2; B2)
Рекомендуется хранить результат вызова функции в скрытом столбце и использовать этот результат, чтобы избежать вызова функции дважды в строке:
ColumnA ColumnB ColumnC ColumnD
1 33 11 =GCD(A1; B1) =A1/C1 & ":" & B1/C1
2 25 5 =GCD(A2; B2) =A2/C2 & ":" & B2/C2
Вторая формула на этой странице использует функцию GCD из Analysis ToolPak, которую можно добавить из Tools > Add-Ins.
=A1/GCD(A1,B1)&":"&B1/GCD(A1,B1)
Это более математическая формула, а не текстовая манипуляция на основе.