Как отобразить большие цифры в сокращенном виде? - PullRequest
1 голос
/ 26 марта 2020

Я хочу сделать формат чисел в Google Sheets, который превращает большие числа в их сокращенную форму. Пример: "1 200" -> "1.2k", "1 500 000 000 000 000" (одна точка пять квадриллионов) -> "1.5Qa". Я понятия не имею, как это будет выглядеть. Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 26 марта 2020

это должно покрыть ваши потребности:

=ARRAYFORMULA(IF(A:A<10^3, A:A, 
 IF(1*A:A<10^6,  TEXT(A:A/10^3,  "#.0\k"),
 IF(1*A:A<10^9,  TEXT(A:A/10^6,  "#.0\M"),
 IF(1*A:A<10^12, TEXT(A:A/10^9,  "#.0\B"),
 IF(1*A:A<10^15, TEXT(A:A/10^12, "#.0\T"),
 IF(1*A:A<10^18, TEXT(A:A/10^15, "#.0\Q\a"),
 IF(1*A:A<10^21, TEXT(A:A/10^18, "#.0\Q\i"),
 IF(1*A:A<10^24, TEXT(A:A/10^21, "#.0\S\x"),
 IF(1*A:A<10^27, TEXT(A:A/10^24, "#.0\S\p"),
 IF(1*A:A<10^30, TEXT(A:A/10^27, "#.0\O"),
 IF(1*A:A<10^33, TEXT(A:A/10^30, "#.0\N"),
 IF(1*A:A<10^36, TEXT(A:A/10^33, "#.0\D"),
 IF(1*A:A<10^39, TEXT(A:A/10^36, "#.0\U"),
 IF(1*A:A<10^42, TEXT(A:A/10^39, "#.0\D\d"),
 IF(1*A:A<10^45, TEXT(A:A/10^42, "#.0\T\d"),
 IF(1*A:A<10^48, TEXT(A:A/10^45, "#.0\Q\a\d"),
 IF(1*A:A<10^51, TEXT(A:A/10^48, "#.0\Q\u\d"),
 IF(1*A:A<10^54, TEXT(A:A/10^51, "#.0\S\x\d"),
 IF(1*A:A<10^57, TEXT(A:A/10^54, "#.0\S\p\d"),
 IF(1*A:A<10^60, TEXT(A:A/10^57, "#.0\O\d"),
 IF(1*A:A<10^63, TEXT(A:A/10^60, "#.0\N\d"),
 IF(1*A:A<10^66, TEXT(A:A/10^63, "#.0\V"),
 IF(1*A:A<10^69, TEXT(A:A/10^66, "#.0\C"), ))))))))))))))))))))))))

0

0 голосов
/ 26 марта 2020

Использовать пользовательский формат чисел

  • Выберите диапазон ячеек, которые вы хотите преобразовать
  • Go в Format -> Number -> More Formats -> Custom number format
  • Вставить в поле ввода [>999999]#,,"M";#,"K"
  • Нажмите Apply - Готово
0 голосов
/ 26 марта 2020

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

Но если нет необходимости сохранять числовой тип, и строка приемлема, то строки можно сгенерировать, используя эту функцию TEXT и динамически задавая формат для числа на основе ссылки:

=INDEX(
  TEXT(
    E2:E24,
      "0.0"
    & IFNA(
          REPT(",", (VLOOKUP(INT(LOG10(E2:E24)), $C$2:$C$8, 1, TRUE)) / 3)
        & "\" & VLOOKUP(INT(LOG10(E2:E24)), {$C$2:$C$8, $A$2:$A$8}, 2, TRUE)
      )
  )
)

Слева вы можете увидеть справочные столбцы, где я использовал символы из wiki .

enter image description here

...