Как я отображаю отношение в Excel в формате A:B?

Подумайте о статически типизированном языке, вещи на prototype статичны, а вещи на this связаны с экземпляром.

18
задан Vincent 23 January 2009 в 14:21
поделиться

5 ответов

Вы ищете наибольший общий делитель (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
15
ответ дан 30 November 2019 в 06:22
поделиться

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

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

Результат:

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

Объяснение:

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

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

<час>

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

27
ответ дан 30 November 2019 в 06:22
поделиться

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

=A1/GCD (A1, B1) &";: "& B1/GCD (A1, B1)

Это - больше математической формулы, а не текстовое управление на основе.

6
ответ дан 30 November 2019 в 06:22
поделиться

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

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

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

-1
ответ дан 30 November 2019 в 06:22
поделиться

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

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

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

1
ответ дан 30 November 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: