У меня есть столбец чисел (столбец P), на который ссылаются как на миллиарды и миллионы, например, 2.12B (для 2.12 миллиардов), 887.99M (для 887.99 миллионов). Данные были скопированы и вставлены из Интернета. Нужна помощь с формулой, чтобы преобразовать приведенные выше примеры в те же ячейки, которые содержат данные, округленные до тысяч, и заменить точку / точку полного числа на запятую в качестве разделителя, например, для 2.12B результаты будут равны 2 120 000, а для 887.99M - результаты быть 887,990. Я думаю, что, возможно, лучше использовать условное форматирование, потому что в столбце будут скопированы и вставлены новые данные, которые потребуют возврата результатов, как указано выше. Большое спасибо.
2 ответа
В Q1 введите:
=--MID(P1,1,LEN(P1)-1)*(IF(RIGHT(P1,1)="M",1000000,(IF(RIGHT(P1,1)="B",1000000000,1))))
и скопировать вниз:
Если вам нужно преобразование в той же ячейке, то потребуется макрос:
Sub Konverter()
Dim r As Range, v As String, s As String
For Each r In Columns(16).SpecialCells(2)
v = r.Text
s = Right(v, 1)
Select Case s
Case "M"
r.Value = 1000000 * CDbl(Mid(v, 1, Len(v) - 1))
Case "B"
r.Value = 1000000000 * CDbl(Mid(v, 1, Len(v) - 1))
Case Else
r.Value = CDbl(v)
End Select
Next r
End Sub
У меня нет Excel под рукой, чтобы опубликовать рабочее решение, но вам нужно следующее:
- MID - функция для отделения номера от B или M
- LEN - функция, которая возвращает длину строки
- ЗАМЕНА - функция для замены точки запятой
Окончательный результат должен быть похож на: = ЗАМЕНА (MID (A1,1, LEN (A1) -1), ".", ",") * IF (MID (A1, LEN (A1) -1), LEN (A1)) = "М", 1000000, 1000000000)
Возможно, я не согласен с некоторыми параметрами, и я работаю с ячейкой A1 - вам следует протестировать с несколькими значениями и адаптировать пример в соответствии с вашими потребностями.
Если вы перетащите эту формулу через столбец, она будет работать для всех будущих данных.