|
|
|
Логические выражения в Excel
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Сформулирую задачу в общем виде. В ячейке А1 находится число, в ячейке В1 - знак отношения (например <=), в ячейке С1 - другое число. Необходимо сравнить два этих числа, применяя знак отношения, заданный в ячейке В1 и результат (ИСТИНА или ЛОЖЬ) поместить в ячейку D1. Другими словами, нужно "слепить" логическое выражение из содержимого заданных ячеек. Способ =А1 & B1 & C1 не срабатывает, поскольку Excel не считает данное выражение логическим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 11:18:59 |
|
||
|
Логические выражения в Excel
|
|||
|---|---|---|---|
|
#18+
Solver, в связи с тем, что операторов сравнения всего 5 Вот такое могу предложить: =ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=1;C1=A1;ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=2;C1<=A1;ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=3;C1>=A1;ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=4;C1>A1;ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=5;C1<A1;""))))) Также см. вложение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 13:39:52 |
|
||
|
Логические выражения в Excel
|
|||
|---|---|---|---|
|
#18+
Сергей06Solver, в связи с тем, что операторов сравнения всего 5 Вот такое могу предложить: =ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=1;C1=A1;ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=2;C1<=A1;ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=3;C1>=A1;ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=4;C1>A1;ЕСЛИ(ИНДЕКС({"=";1:"<=";2:">=";3:"<";5:">";4};ПОИСКПОЗ(B1;{"=":"<=":">=":"<":">"};0);2)=5;C1<A1;""))))) Также см. вложение Конечно, это сокращаемо до =ЕСЛИ(ПОИСКПОЗ(B1;{"=":"<=":">=":">":"<"};0)=1;C1=A1;ЕСЛИ(ПОИСКПОЗ(B1;{"=":"<=":">=":">":"<"};0)=2;C1<=A1;ЕСЛИ(ПОИСКПОЗ(B1;{"=":"<=":">=":">":"<"};0)=3;C1>=A1;ЕСЛИ(ПОИСКПОЗ(B1;{"=":"<=":">=":">":"<"};0)=4;C1>A1;ЕСЛИ(ПОИСКПОЗ(B1;{"=":"<=":">=":">":"<"};0)=5;C1<A1;"нет такого сравнения"))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 13:46:03 |
|
||
|
Логические выражения в Excel
|
|||
|---|---|---|---|
|
#18+
Эту задачу можно решить через функцию Public Function Logtst(a, c, b) Select Case c Case "<" If a < b Then rez = "TRUE" Else rez = "FALSE" Case ">" If a > b Then rez = "TRUE" Else rez = "FALSE" End Select Logtst = rez End Function на лист1 в А1 - число (напр. 3) В1 - число (напр. 5) С1 - < или > D1 - =Logtst(A1;B1;C1) Другие критерии можно добавить если нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 16:02:57 |
|
||
|
Логические выражения в Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо, Сергей! Это хороший вариант. К сожалению, я не могу применить его в своей задаче. Дело в том, что я хотел использовать построенные логические выражения в надстройке "Поиск решения", но к сожалению, Поиск решения не воспринимает такие выражения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 16:30:54 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35782063&tid=2179872]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
199ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 505ms |

| 0 / 0 |
