Как отобразить соотношение в Excel в формате A: B? - PullRequest
18 голосов
/ 23 января 2009

У меня есть таблица данных Excel, например:

ColumnA ColumnB
33        11
25        5
6         4

Что я хотел бы сделать, это добавить третий столбец, который показывает соотношение столбца A к столбцу B в формате A: B. Например:

ColumnA ColumnB   Ratio
33        11       3:1
25        5    5:1
6         4    3:2

Кто-нибудь знает способ достижения этого?

Заранее спасибо.

Ответы [ 8 ]

27 голосов
/ 23 января 2009

Попробуйте эту формулу:

=SUBSTITUTE(TEXT(A1/B1,"?/?"),"/",":")

Результат:

A   B   C
33  11  3:1
25  5   5:1
6   4   3:2

Пояснение:

  • TEXT (A1 / B1, "? /?") Превращает A / B в неправильную дробь
  • ЗАМЕНА (...) заменяет "/" в дроби двоеточием

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


Примечание: в соответствии с предложением @Robin Day увеличьте количество знаков вопроса (?), Чтобы уменьшить округление (спасибо Робин!).

15 голосов
/ 23 января 2009

Вы ищете наибольший общий делитель (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
5 голосов
/ 23 января 2009

Вторая формула на этой странице использует функцию GCD пакета Analysis ToolPak, которую можно добавить в меню Инструменты> Надстройки.

= A1 / НОД (A1, B1) & ":" & B1 / НОД (A1, B1)

Это более математическая формула, а не текстовая манипуляция на основе.

1 голос
/ 04 июля 2011

Предположим, у вас есть данные в ячейках D и E .. Вот самое простое соотношение, отображающее fn моего друга 'Karthik'

=ROUND(D7/E7, 2) &":" & (E7/E7)
1 голос
/ 09 марта 2011

Я нашел, что это самый простой и короткий, однако я округлил до нуля десятичных знаков:

= "1" & ":" & ROUND ((A1 / B1), 0)

обратите внимание на пробелы до и после &

что это означает, что «1» и «:» рассматриваются как дополнительная не-формульная информация к общей формуле. Функция ROUND округляет A1 / B1, которая является базовой формулой, до 0 десятичных знаков. Вы можете попробовать изменить на 1,2,3 .... десятичные разряды.

Надеюсь, я сделал это просто

1 голос
/ 12 августа 2010

Ниже приведена формула, которую я использую. У меня была проблема с использованием GCD, потому что я использую довольно большие числа для вычисления соотношений, и я нашел, что такие соотношения, как «209: 1024», менее полезны, чем простое округление, поэтому он отображает «1: » или « : 1" . Я также предпочитаю не использовать макросы, если это вообще возможно. Ниже приведен результат.

=IF(A1>B1,((ROUND(A1/B1,0))&":"&(B1/B1)),((A1/A1)&":"&(ROUND(B1/A1,0))))

Некоторая формула не нужна (например, «А1 / А1»), но я включил ее, чтобы показать логику, стоящую за ней. Кроме того, вы можете переключать количество округления, играя с настройками каждой функции ROUND.

0 голосов
/ 12 марта 2013

На работе у нас есть только Excel 2003, и мне кажется, что эти две формулы работают идеально:

=(ROUND(SUM(B3/C3),0))&":1"

или

=B3/GCD(B3,C3)&":"&C3/GCD(B3,C3)
0 голосов
/ 17 июля 2010

Спасибо, спасибо. Я использовал это:

=CONCATENATE((number1/GCD(number1,number2)),":",((number2/GCD(number1,number2))))

Если у вас есть 2007, это прекрасно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...