Функція TEXT () не забиває, як очікувалося в Excel 2010


1

У мене є робочий аркуш Excel, який містить три сторінки:

  1. "Eingaben" / Input - користувач вводить деякі дані
  2. "Експорт" - дані форматуються та додаються для експорту файлу PRN
  3. "Konstante" - містить деякі постійні значення, що будуть використані на вкладці експорту

На першій сторінці є поле, яке містить число (форматування у введенні як "Стандартне"). Даний номер "67922200305"

У Експорті формула говорить

=TEXT(Konstante!$B$5&Eingabe!$D2;"000000000000000000000000")

тому вхідне значення повинно бути встановлено з "60308700", і вся справа має нульову підкладку до довжини 24.

Дивно, що вихід в Експорт:

000006030870067922200000

де я очікував, що це буде

000006030870067922200305

Формат поля експорту - Стандартний, а константою - Текст.

Для мене це виглядає як "округлення" питання, хоча, мабуть, "&" має об'єднати рядки.


Здається, у вас є налаштування, яке перетворює вхідні значення, розділене на 1000. Тож 305 в кінці округлюється вгору. Спробуйте TEXT (Konstante! $ B $ 5 & TEXT (Eingabe! $ D2); "000000000000000000000000").
Данатела

Він не працює, оскільки другий параметр внутрішньої функції TEXT () відсутній. Тому я спробував = TEXT (Konstante! $ B $ 5 & TEXT (Eingabe! $ D2; "00000000000"); "000000000000000000000000") з тим же результатом, він не відображає останні три цифри.

Спробуйте знайти налаштування. Я не знаю, як це виглядає німецькою мовою. Однак це має бути на вкладці Додаткові налаштування.
Данатела

Відповіді:


3

TEXTФункція приймає числове значення в якості першого параметра, тому результат конкатенації (тобто Konstante!$B$5&Eingabe!$D2) перетворюється в число. Зверніть увагу, що те саме відбувається з пропозицією коментувати ( Konstante!$B$5&TEXT(Eingabe!$D2))).

Подивіться на цей запис у Вікіпедії :

Хоча Excel може відображати 30 десяткових знаків, його точність для визначеного числа обмежується 15 значущими цифрами, і обчислення можуть мати точність, яка навіть менша через три питання: округлення, усічення та двійкове зберігання.

Ваш номер ( 6030870067922200305) занадто довгий, і Excel зберігає лише 15 значущих чисел (тобто 603087006792220).

Ви можете досягти того, що намагаєтесь робити, вибираючи виключно текстові значення. Наприклад, ви можете використовувати LENі REPTфункції:

=REPT(0;24-(LEN(Konstante!$B$5)+LEN(Eingabe!$D2)))&Konstante!$B$5&Eingabe!$D2

Тут я повторююсь, 0щоб досягти 24 (менше постійних та вхідних довжин), потім стискаю постійні та вхідні значення.

Сподіваюся, це допомагає.


дякую, це виглядає багатообіцяюче, мені потрібно буде перекласти назви функцій німецькою мовою, я незабаром дам вам відгук.

Є інструмент (німецький), який я використовую для перетворення імен функцій з французької на англійську;) excel-translator.de
ssssteffff

1
Результат:=WIEDERHOLEN(0;24-(LÄNGE(Konstante!$B$5)+LÄNGE(Eingabe!$D2)))&Konstante!$B$5&Eingabe!$D2
ssssteffff

Дякую @ssssteffff ваше рішення працює для мене :-))) happy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.