
Я вручную просматриваю несколько отчетов PDF, содержащих различные числа, которые обычно содержат как десятичные, так и тысячные разделители. В большинстве случаев запятые и тысячные разделители такие же, как в моих локальных настройках (, = десятичная дробь, . = тысяча, ; = разделитель аргументов). К сожалению, функции Excel не любят получать числа, содержащие тысячный разделитель.
Проблема
Я копирую значения из PDF и не хочу, чтобы они отображались как скопированные в ячейке, но сначала обрабатываю их. Я не хочу, чтобы исходное число отображалось в какой-либо ячейке. Но когда я копирую некоторые значения и пытаюсь передать их функции, например
=СРЕДНЕЕ(1.234.456.789;3.000.000.000)
Я получаю сообщение об ошибке
There is a problem with this formula.
Not trying to type a formula?
When the first character is an equal (=) or minus (-) sign, Excel thinks it's a formula
· you type: =1+1, cell shows: 2
To get around this type an apostrophe (') first:
· you type '=1+1, cell shows =1+1
на данный момент я вынужден вручную удалить разделитель тысяч, чтобы получить
=СРЗНАЧ(1234456789;3000000000) для того, чтобы формула работала.
Есть ли менее трудоемкий способ сделать это?
Требование к решению
Редактировать: Мне не нужно такое решение
=СРЕДНЕЕ(ПОДСТАВИТЬ("123.456.789";".";"");ПОДСТАВИТЬ("3.000.000.000";".";""))
так как это требует гораздо больше ввода текста; я бы предпочел иметь решение, которое либо
- включаетизменение настройки Excel, которая предотвращает появление жалоб ВСЕХ функций Excel на разделители тысяч, или
- В качестве второго лучшего решения можно использовать способ написания функций VBA, которые заставят их работать для каждой функции отдельно (в этом случае мне понадобится только работающий пример для AVERAGE, чтобы иметь возможность реализовать остальное самостоятельно), например:
=МоеХорошееСреднее(1.234.456.789;3.000.000.000)
что я не могу сделать, так как даже функция VBA будет жаловаться на параметры, отформатированные как выше. Я могу реализовать решение, передавая аргументы как строку типа
=МоеНеСовершенноХорошееСреднее("1.234.456.789";"3.000.000.000")
что тоже является удовлетворительным вариантом, поскольку я вставляю огромное количество чисел и не хочу заключать каждое число в отдельные кавычки.
Спасибо за вашу помощь!
решение1
Вы можете использовать SUBSTITUTE
для удаления точек в скопированных значениях.
Так:
=AVERAGE(SUBSTITUTE("123.456.789";".";"");SUBSTITUTE("3.000.000.000";".";""))
решение2
После тебя Copy
, ты сможешь Paste using Text Import Wizard
.
Это откроет окно Text Import Wizard
, где Step 3 --> Advanced
вы можете указать разделители Decimal
и , Thousands
которые используются в скопированных вами данных.
Это позволит соответствующим образом преобразовать значения в числа с использованием ваших собственных разделителей.
Если вы не видите этот элемент доступным при нажатии на нижнюю половину Paste
кнопки на Home
вкладке, настройте , Quick Access Toolbar
чтобы добавить его туда. Вы должны найти эту команду в списке, если вы выберетеChoose Commands
от All Commands
.
решение3
Если у вас есть Office 365:
=AVERAGE(--SUBSTITUTE({"1.234.456.789","3.000.000.000"},".",""))
В противном случае вы можете захотеть ввести как массив черезCtrlShiftEnter
С другой стороны, можно было бы просто SUM
разделить:
=SUM("1.234.456.789","3.000.000.000")/2