Получить только числа из значения ячейки - PullRequest
0 голосов
/ 07 мая 2019

Я использую формулу для отображения 3 hours 7 mins как 3,07. Однако по какой-то причине та же формула не работает в английской версии Win7 Office 2013, где написано #VALUE. Почему так и как его починить? Может быть, другая формула для обоих?

Windows 10 Office 365 Европейская версия

=CEILING(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(ISERROR(SEARCH("hour"; R96)); "0 hours "; "")&R96;"s";"");" min";"");" hour ";",");0,1)

Русская версия Windows 7 Office 2013

=CEILING(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(ISERROR(SEARCH("hour", P96)), "0 hours ", "")&P96,"s","")," min","")," hour ",","),0.1)

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Это похоже на проблему, вызванную десятичным разделителем , который различается в разных странах: некоторые пишут «тысяча с половиной» как «1,000.5», другие пишут как «1.000,5»

Итак, вы должны убедиться, что ваш "," знает, когда он должен быть ".".Самый простой способ, который я могу придумать для этого, это MID(1/2,2,1), то есть взять средний символ из половины.В зависимости от ваших настроек это будет 0.5 (результат: ".") или 0,5 (результат: ",")

(0.1 в конце должен Измените себя автоматически между версиями, так как это фактическое число - если нет, то измените его на 1/10 для аналогичного результата)

=CEILING(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(ISERROR(SEARCH("hour"; R96)); "0 hours "; "")&R96;"s";"");" min";"");" hour ";MID(1/2,2,1));1/10)

Также учтите: ваша текущая система напишет "2 часа 1минуты "как" 2,1 "(или" 2,1 "в зависимости от настроек) - но также напишет" 2 часа 10 минут "как" 2,1 ".Ваши требования могут быть пересмотрены

1 голос
/ 07 мая 2019

3,7 не является числом, поэтому, когда формула достигает этой точки:

=CEILING("3,7",0.1)

Вы получите ошибку #VALUE. Вместо этого вы можете использовать следующее (обратите внимание на изменения):

=CEILING(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(ISERROR(SEARCH("hour", P96)), "0 hours ", "")&P96,"s","")," min","")," hour ","."),0.1)
                                                                                                                            ^

Что приводит к 3.7. Если вам нужна запятая, вам понадобится последний SUBSTITUTE:

=SUBSTITUTE(CEILING(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(ISERROR(SEARCH("hour", P96)), "0 hours ", "")&P96,"s","")," min","")," hour ","."),0.1), ".", ",")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...