Преобразовать текстовую строку с начальным дефисом в отрицательное число

Преобразовать текстовую строку с начальным дефисом в отрицательное число

У онлайн-брокера, которым я пользуюсь, наверное, самый неработающий сайт в мире! Они не предоставляют функцию «экспорта», вместо этого сообщая пользователям, что они могут просто копировать данные из таблиц, отображаемых в их браузере, и вставлять их в Excel. (Серьёзно!)

Удивительно, но Excel (2016, для Mac) можно заставить преобразовать «положительные текстовые числа» в реальные числа, над которыми можно работать с числовыми функциями ( SUMобычно). Однако «отрицательные текстовые числа» не поддаются всем попыткам преобразовать их в отрицательное число.

«Положительное число текста»: $123.45
«Отрицательное текстовое число»: -$543.21 (обратите внимание на начальный текстовый символ hyphen)

EDIT:
«Отрицательное текстовое число» составляет: – $299.55 (Обнаружено, что ведущий персонаж –НЕТа hyphen; это может бытьem dash
Прошу прощения за путаницу... Теперь мне интересно, какие программисты могли бы использовать em dashвместо minus sign/hyphenна веб-странице, полной цифр, но это вопрос к моемуонлайн-брокер.

Я могу преобразовать «положительное текстовое число» в ячейке A1 следующим образом:=VALUE(RIGHT(A1,6))

Но это не работает с "отрицательным текстовым числом". Он получает число правильно, но теряет знак "минус". Я пробовал менять значение chars, но это не помогает.

Я также пробовал следующее, но безуспешно:
1. умножение на 1
2. преобразование текста в столбцы
3. форматирование ячеек...

Есть ли способ сделать это, кроме как вручную повторно вводить данные?

решение1

Думаю, я нашел простое решение. В одной из ячеек с начальным тире выделите и скопируйте только тире. Используя функцию Excel «Найти и заменить», вставьте тире в блок «Найти что», затем введите знак минус в блок «Заменить на». Примените замену ко всем ячейкам, которые вы хотите преобразовать.

решение2

Если ячейка A1 содержиттекстто есть в формате «$123.45» или «-$543.21», вы можете использовать следующую формулу для получения числового значения.

=IF(LEFT(A1,1)="-",0-VALUE(RIGHT(A1,LEN(A1)-1)),VALUE(A1))

Если текст начинается с «-», то будут извлечены значения всех символов после «-» и сделаны отрицательными.

решение3

Я бы рекомендовал:

  1. Извлечь значение после $знака, не использовать фиксированную позицию
  2. Проверьте знак значения, отметив символ, стоящий непосредственно перед $знаком.

Так что формула может быть такой:

=IF(IF(ISERROR(FIND(MID(A1,FIND("$",A1)-1,1),"<dash><hyphen>")),3,FIND(MID(A1,FIND("$",A1)-1,1),"<dash><hyphen>"))<3,-MID(A1,FIND("$",A1)+1,LEN(A1)),0+MID(A1,FIND("$",A1)+1,LEN(A1)))

где

"<dash><hyphen>"- литерал с возможными отрицательными знаками (замените заполнители соответствующими символами в любом порядке, чтобы получить двухсимвольный литерал в показанном случае)

3- число, которое больше количества символов в предыдущем литерале

Эти значения можно заменить ссылкой на ячейку, содержащую все возможные знаки «минус» (например, Z1и 1+LENGTH(Z1)соответственно).


Обновление. Отладка формулы.

Создайте таблицу на пустом листе.

Введите 4 различных значения в столбец A (без или с начальным пробелом, положительные или отрицательные).

Вставьте следующие формулы:

Cell          Formula                      Meaning
-------------------------------------------------------------
$B$1          =IF(I1,-G1,0+G1)             Result
$C$1          =LEN(A1)                     Data length in source
$D$1          =FIND("$",A1)                $ position in source
$E$1          =MID(A1,D1-1,1)              symbol before $
$F$1          =FIND(E1,"<dash><hyphen>")   symbol before $ position in hyphens list
$G$1          =MID(A1,D1+1,C1)             number from source
$H$1          =ISERROR(F1)                 correction when no symbol before $ in list
$I$1          =IF(H1,3,F1)<3               define is a source positive or negative

Скопируйте этот пакет формул в строки 2-4. Проверьте, что вы получаете такой вывод:

     A        B      C   D   E      F       G    H       I
1    $123     123    4   1   #VAL!  #VAL!   123  TRUE    FALSE   
2    -$234    -234   5   2   -      1       234  FALSE   TRUE    
3      $345   345    6   3          #VAL!   345  TRUE    FALSE   
4      -$456  -456   7   4   -      1       456  FALSE   TRUE    

Столбец CI содержит отдельные этапы расчета, а столбец B содержит окончательную формулу со всеми подстановками.

Где ошибка в расчетах?

Связанный контент