Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2017, 14:15   #1
TotoSmile
 
Регистрация: 01.07.2017
Сообщений: 5
Вопрос Запись длинной формулы

Помогите разобраться пожалуйста, сделала формулу в экселе, но необходимо, чтобы тоже самое работало в access. Говорю сразу, никогда ничего подобного не делала в access, но поставили такую задачу и выбора нет.

Сама формула выглядит так в экселе:
=IF(COUNTBLANK(C4)=1,IF(COUNTBLANK( D4)=1,1030,IF(COUNTBLANK(E4)=1,1020 ,IF(D4<E4,1020,1030))),IF(COUNTBLAN K(D4)=1,IF(COUNTBLANK(E4)=1,1010,IF (C4<=E4,1010,1030)),IF(COUNTBLANK(E 4)=1,IF(C4<=D4,1010,1020),IF(AND(C4 <=D4,C4<=E4),1010,IF(D4<=E4,1020,10 30)))))

Первую часть я записала в access таким образом, и она работает:
DisplayText: IIf(IsNull([1010] &[1020]),"1030",IIf(IsNull([1030]),"1020",IIf([1020]<[1030],"1020","1030")))

А дальше никак, сразу ошибки разного рода. Если перед или между последними скобками,поставить запятую и писать формулу по порядку как в экселе то выдает :wrong number of arguments

Если после последних скобок, то:contains invalid syntax, or you need to enclose your text data in quotes.

А если убрать запятую, то - contains invalid syntax. You have entered an operator, such as the +operator,in an expression without a corresponding operand.

Я в тупике.
DisplayText: IIf(IsNull([1010] & [1020]),"1030",IIf(IsNull([1030]),"1020",IIf([1020]<[1030],"1020","1030"))), IIf(IsNull([1020] & [1030]),"1010",IIf([1010]<=[1030],"1010","1030"))
TotoSmile вне форума Ответить с цитированием
Старый 01.07.2017, 15:05   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

У меня и екселевская формула не запустилась.
По отдельности части формулы верны, но зачем 2 формулы в одно поле впихивать?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 01.07.2017, 20:04   #3
TotoSmile
 
Регистрация: 01.07.2017
Сообщений: 5
По умолчанию

Это одна формула которая учитывает все необходимые варианты для расчета. Разбивать формулу и под каждую делать новый столбик неудобно и тогда место одного на выходе, с учетом всего, выйдет много лишних столбиков. Этого нехотелось бы, надо как в экселе
В экселе формула работает для такой таблицы(пример):
Учитывает минимальное значение из 3х столбиков и так же варианты с пустыми значениями и повторами (при повторах есть приоритет). Может быть можно было как то проще записать формулу.2017-07-01 (2).png
TotoSmile вне форума Ответить с цитированием
Старый 01.07.2017, 21:58   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

вариант
Код:
IIf(IsNull([1010] & [1020]);"1030";
IIf(IsNull([1030]);"1020";
IIf([1020]<[1030];"1020";
IIf(IsNull([1020] & [1030]);"1010";
IIf([1010]<=[1030];
"1010";"1030")))))
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 01.07.2017 в 22:08.
Aleksandr H. вне форума Ответить с цитированием
Старый 04.07.2017, 10:58   #5
TotoSmile
 
Регистрация: 01.07.2017
Сообщений: 5
По умолчанию

Спасибо, но не до конца работает как надо,а точнее так выходит:
2017-07-02.png
ПРобую доработать но все равно учитывает только одно условие. Скорее всего придется разбивать всетаки формулу.. Спасибо всеравно
TotoSmile вне форума Ответить с цитированием
Старый 04.07.2017, 11:22   #6
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

может так
Код:
IIf(nz([1010] ,0);"1030";
IIf(IsNull([1030]);"1020";
IIf([1020]<[1030];"1020";
IIf(len([1020] & [1030])=0;"1010";
IIf([1010]<=[1030];"1010";"1030")))))
хотя я не поняла, что требуется
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание

Последний раз редактировалось shanemac51; 04.07.2017 в 11:24.
shanemac51 вне форума Ответить с цитированием
Старый 04.07.2017, 11:47   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Вложите, пожалуйста, ексель файл с рабочей формулой
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 05.07.2017, 09:10   #8
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 734
По умолчанию

По-моему, в функции COUNTBLANK нужно вводить столбец, в качестве параметра, а не ячейку. Или Вы проверяете ячейку на пустоту?
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 05.07.2017, 16:27   #9
TotoSmile
 
Регистрация: 01.07.2017
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Вложите, пожалуйста, ексель файл с рабочей формулой
Вложение 88866

Вот.Пожалуйста. Пока рассматриаю первый столбик с формулой. Но в итоге все должно выглядить так.
TotoSmile вне форума Ответить с цитированием
Старый 05.07.2017, 16:30   #10
TotoSmile
 
Регистрация: 01.07.2017
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
По-моему, в функции COUNTBLANK нужно вводить столбец, в качестве параметра, а не ячейку. Или Вы проверяете ячейку на пустоту?
Тут не весь столбик пустой. Суть в том, что если ячейка пустая, то он должен брать значения из соседних и выбирать то, что будет меньше, а если равны, то по приоритету(1030 последним идет)и вписывать в итоге название столбика
(Если правильно Вас поняла)
TotoSmile вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись формулы в Delphi djdron Помощь студентам 4 14.03.2014 17:04
Запись формулы в макросе Tanit Microsoft Office Excel 3 22.02.2013 13:03
Запись формулы в Паскале. Zippo87 Помощь студентам 4 02.10.2012 15:39
Запись формулы (pascal) spinogryz_ua Помощь студентам 1 10.02.2012 18:28
Запись формулы Alex0161 Помощь студентам 2 29.12.2010 20:25