Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

формулы в Экселе

2.0K
25 февраля 2003 года
Polev
33 / / 20.12.2002
Здравствуйте!
Есть задача следующего характера.
Храню в Акесе данные, которые передаются потом в Ёксель и соответственно обратно в Акес.
Хранить нужно как просто значения, так и формулы(если они есть, конечно)

Для хранения формул пользуюсь
Selection.value = Selection.formulaR1C1
А потом все что получилось загоняю в Акес.

Байда в следующем.
При целочисленных значениях - все супер-пупер работает, но как только появляются дробные начинаются проблемы...
'=101,45*123,2' преобразовыввается в '=101.45*123.2'
и при обратном движении
Selection.formulaR1C1 = Selection.value
уже не воспринимается....

Бяда, однозначно...
267
25 февраля 2003 года
Cutty Sark
1.2K / / 17.10.2002
Возьми .FormulaR1C1Local вместо .FormulaR1C1
2.0K
26 февраля 2003 года
Polev
33 / / 20.12.2002
Цитата:
Originally posted by Cutty Sark
Возьми .FormulaR1C1Local вместо .FormulaR1C1


Спасибо, проскочило...
Но теперь (я видно все-таки ничего не понимаю в Экселе) этот паразит не воспринимает ряд дробных чисел...
Примеры:
=3991,54/2
=6500,74/2

пишет ошибка в формуле и выделяет 4-х значные числа. Копирование диапазона на другой лист и даже в новую книгу не помогает. Пытаюсь в открытой книге руками написать формулу. Та же ошибка... Может это что в настройках? Не понимаю....

267
26 февраля 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Polev

Спасибо, проскочило...
Но теперь (я видно все-таки ничего не понимаю в Экселе) этот паразит не воспринимает ряд дробных чисел...
Примеры:
=3991,54/2
=6500,74/2

пишет ошибка в формуле и выделяет 4-х значные числа. Копирование диапазона на другой лист и даже в новую книгу не помогает. Пытаюсь в открытой книге руками написать формулу. Та же ошибка... Может это что в настройках? Не понимаю....



У меня, кстати, все прокатывает. Может, ты только одну FormulaR1C1 заменил на FormulaR1C1Local (надо-то обе)?

Вообще, все эти фокусы зависят от виндузовых "национальных настроек". Там есть разделитель целой и дробной частей, и есть разделитель элементов списка. Во встроенной русской настройке используются "," и ";" соответственно. В американской - "." и ",".
FormulaLocal работает с теми установками, которые включены у тебя на компе. Formula - всегда с американскими. Судя по сообщению об ошибке, Эксель у тебя в этом примере считал "," разделителем списка. В общем, посмотри, что записано у тебя в Regional Settings. Это должно дать тебе ключ к разгадке проблемы. Если не получится, попробуем вместе. Сообщи тогда заодно какие у тебя версии Виндов и Экселя (включая язык). Удачи!

2.0K
26 февраля 2003 года
Polev
33 / / 20.12.2002
Цитата:
Originally posted by Cutty Sark


У меня, кстати, все прокатывает. Может, ты только одну FormulaR1C1 заменил на FormulaR1C1Local (надо-то обе)?

Вообще, все эти фокусы зависят от виндузовых "национальных настроек". Там есть разделитель целой и дробной частей, и есть разделитель элементов списка. Во встроенной русской настройке используются "," и ";" соответственно. В американской - "." и ",".
FormulaLocal работает с теми установками, которые включены у тебя на компе. Formula - всегда с американскими. Судя по сообщению об ошибке, Эксель у тебя в этом примере считал "," разделителем списка. В общем, посмотри, что записано у тебя в Regional Settings. Это должно дать тебе ключ к разгадке проблемы. Если не получится, попробуем вместе. Сообщи тогда заодно какие у тебя версии Виндов и Экселя (включая язык). Удачи!



Прилагаю файлик с загадочным именем Quest определяющим суть проблемы... Винды 98, офис 97.
Посмотри... Там всего-то две ячеечки....

267
26 февраля 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Polev


Прилагаю файлик с загадочным именем Quest определяющим суть проблемы... Винды 98, офис 97.
Посмотри... Там всего-то две ячеечки....



Не вижу никакой проблемы.

Вот как все происходит. Когда ты вводишь формулу в ячейку, Эксель смотрит какие у тебя национальные настройки и использует их при разборе формулы. На экране у тебя будет отображено все в том виде, как ты вводил формулу, но у себя в памяти формула будет записана с американскими разделителями (это обеспечивает возможность открывать книгу на компах с разными национальными настроками).

У меня лично комп, например, настроен на американский лад ("." - дробь, "," - список), мне так по некоторым причинам удобнее. У ТЕБЯ, ВИДИМО, ТОЖЕ. Когда ты вводил себе в ячейку "=7304,8/29,93", запятая была воспринята как разделитель списка (то, что в русском варианте выглядело бы так "=7304;8/29;93"). Возникла ошибка. Поскольку ты оставил формулу как есть, она и была записана в памяти "как есть", тоесть без переделки в американские настройки. При моих настройках "=7304,8/29,93" - неправильно, правильно "=7304.8/29.93" Если я введу "=7304.8/29.93", это будет понято правильно, получится 244.06. При этом, если ты откроешь книгу с правильно введенной формулой на компе с русскими национальными настройками, в качестве формулы ты увидишь "=7304,8/29,93".
.FormulaLocal при этом будет выдавать на разных компах разные результаты - в зависимости от настроек. .Formula - всегда с "."

Я думаю, когда ты прочувствуешь подобный механизм работы с разделителями, ты поймешь все свои трудности. Не чайник ведь.

Я спрашивал еще про язык Виндов и Офиса. Английские винды по умолчанию устанавливаются с американской настройкой, русские - с русской.

2.0K
26 февраля 2003 года
Polev
33 / / 20.12.2002
Цитата:
Originally posted by Cutty Sark


Не вижу никакой проблемы.

Вот как все происходит. Когда ты вводишь формулу в ячейку, Эксель смотрит какие у тебя национальные настройки и использует их при разборе формулы. На экране у тебя будет отображено все в том виде, как ты вводил формулу, но у себя в памяти формула будет записана с американскими разделителями (это обеспечивает возможность открывать книгу на компах с разными национальными настроками).

У меня лично комп, например, настроен на американский лад ("." - дробь, "," - список), мне так по некоторым причинам удобнее. У ТЕБЯ, ВИДИМО, ТОЖЕ. Когда ты вводил себе в ячейку "=7304,8/29,93", запятая была воспринята как разделитель списка (то, что в русском варианте выглядело бы так "=7304;8/29;93"). Возникла ошибка. Поскольку ты оставил формулу как есть, она и была записана в памяти "как есть", тоесть без переделки в американские настройки. При моих настройках "=7304,8/29,93" - неправильно, правильно "=7304.8/29.93" Если я введу "=7304.8/29.93", это будет понято правильно, получится 244.06. При этом, если ты откроешь книгу с правильно введенной формулой на компе с русскими национальными настройками, в качестве формулы ты увидишь "=7304,8/29,93".
.FormulaLocal при этом будет выдавать на разных компах разные результаты - в зависимости от настроек. .Formula - всегда с "."

Я думаю, когда ты прочувствуешь подобный механизм работы с разделителями, ты поймешь все свои трудности. Не чайник ведь.

Я спрашивал еще про язык Виндов и Офиса. Английские винды по умолчанию устанавливаются с американской настройкой, русские - с русской.



Все русское.
Файлик скачал? Попробуй изменить значение числовой ячейки на, скажем, 400521. После изменения формулу ПЕРЕСЧИТЫВАЕТ!!! Не понимаю... (хотя действительно не чайник, но этот файл меня убеждает в обратном...)

267
26 февраля 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Polev


Все русское.
Файлик скачал? Попробуй изменить значение числовой ячейки на, скажем, 400521. После изменения формулу ПЕРЕСЧИТЫВАЕТ!!! Не понимаю... (хотя действительно не чайник, но этот файл меня убеждает в обратном...)



Скачал. Все работает нормально. Я туда вставил правильную формулу. Попробуй.

З.Ы. Вопрос из анекдота. Перегружать комп пробовал?

2.0K
26 февраля 2003 года
Polev
33 / / 20.12.2002
Цитата:
Originally posted by Cutty Sark


Скачал. Все работает нормально. Я туда вставил правильную формулу. Попробуй.

З.Ы. Вопрос из анекдота. Перегружать комп пробовал?



и по монитору ногой стучал... :-)

НЕ РАБОТАЕТ!
Я не понимаю такой вещи. Почему у меня формула пересчитывается после изменения другой числовой ячейки и после изменения 7304 на 7303 или 7305. А после обратного изменения не считает. Если бы дело было в нац.настройках то не считалось бы по любому. Более того. Не посчиталось 4 значения из 1500 почти идентичных (не по числам, а по форме) Причем считались формулы и намного более длинные.

267
26 февраля 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Polev


и по монитору ногой стучал... :-)

НЕ РАБОТАЕТ!
Я не понимаю такой вещи. Почему у меня формула пересчитывается после изменения другой числовой ячейки и после изменения 7304 на 7303 или 7305. А после обратного изменения не считает. Если бы дело было в нац.настройках то не считалось бы по любому. Более того. Не посчиталось 4 значения из 1500 почти идентичных (не по числам, а по форме) Причем считались формулы и намного более длинные.



Как Эксель решает, что ему надо пересчитать, а что не надо, я представляю только в общих чертах (сам часто удивлялся). Вот какие закономерности я замечал. Если в книге нет макросов (или конкретно функций, точно не помню), то пересчитываются только нужные формулы (то есть зависимые от изменявшихся ячеек). Если же есть пользовательские функции, то эксель пересчитывает всю книгу (ведь ты мог в функции "по-партизански" изменять значения в ячейках, а в своих встроенных функциях Билл Гейтс по этой части уверен).
Попробуй, что ли прислать мне весь твой файл, попробуем разобраться. Мой мейл korzz"собака"pisem"точка"net

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог