#excel
#преуспеть
Вопрос:
Есть ли какой-нибудь способ, которым я могу построить формулу на основе пользовательского ввода, включая логические функции? Например, пользователь может ввести
A1 должно быть <> 1
A1 будет находиться в ячейке (и я могу использовать косвенный), с <> в соседней ячейке, и результирующая формула будет =IF(A1<>1, TRUE, FALSE), но в следующий раз, когда пользователь захочет, чтобы формула была
A1>1
таким образом, ячейка будет иметь A1 (снова используя косвенное значение для результирующей формулы) и> в соседней ячейке, что приведет к IF(A1> 1, TRUE, FALSE)
Комментарии:
1. Всегда ли при сравнении используется одна и та же ячейка (здесь A1)? Или также должен быть обработан ввод типа ‘C23 = 5’?
2. Требуются только сравнения, такие как <,>,=,<> или также более сложные операторы?
3. Это всегда будет одна и та же ячейка. На самом деле это будет немного сложнее, так как метрике будет присвоено имя, и я буду использовать VLOOKUP, чтобы найти фактическое значение ячейки, на которое ссылается метрика, но для простоты я просто использую A1 для примера. Мне понадобятся только четыре опоратора, которые вы перечислили Редактировать: чтобы уточнить, пользователь может фактически поместить «<>» в поле рядом с «доходом», но я ВПР «Доход» косвенный, который указывает на A1 в этом случае
Ответ №1:
Одним из способов было бы оценить каждую возможность (<>,>=,<=,=) Затем используйте функцию сопоставления или поиска, чтобы выбрать правильный ответ на основе введенных пользователем данных.
Комментарии:
1. Это был бы правильный путь, но у меня есть 8 разных показателей и 3 критерия на («<>», «<«, «>») таким образом, это была бы тонна формул для всех комбинаций
2. Показатели могут быть динамическими на основе косвенных функций. Вам просто нужно будет создать список критериев (<>, <, >) один раз.
Ответ №2:
Вы можете использовать Convert
из Data
меню, чтобы разделить содержимое каждой ячейки, используя пробел в качестве разделителя. Вы выбираете столбец L для записи своей формулы (например, чтобы избежать перекрытия из-за операции разделения), а затем вы можете собрать свои критерии, объединив содержимое подходящих ячеек для разработки формулы.
вы можете проверить с помощью CHER(60), CHAR(61) или CHAR(62), содержат ли ячейки соответственно символы «<«, «=» и «>».
надеюсь, это может помочь!
Комментарии:
1. Я думаю, что это что-то дает, но я все еще не могу получить формулу для оценки без жесткого ввода оператора. Поэтому, если я объединяю =A1amp;CHAR(60)amp;A2 (например), я получаю ‘A1’ <‘A2’, а не ‘TRUE’ или ‘FALSE’, как если бы я сделал =A1
Ответ №3:
Я беру следующий пример с 2 строками:
- Значение A1 должно отличаться от единицы <> 1
- Значение A1 должно быть равно или больше нуля > 0
В ячейке B1 у меня будет A1. В следующей ячейке C1 у меня будет «must». В D1 «be», в E1 «different» и так далее .. В H1 «<>», и у меня есть «1» в I1. Следовательно, вторая строка идет из ячейки B2 в K2, в J2 у меня есть «>», а в K2 — «0». Я ввожу 5 в ячейку A1 и 0 в ячейку A2. В ячейке M1 я ввожу эту строку ниже, чтобы иметь свою формулу :
=" = IF(" amp; "A1" amp; IF(LEN(C1)>2;"";IF(LEFT(C1;1)="<";C1;IF(LEFT(C1;1)="=";C1;IF(LEFT(C1;1)=">";C1;IF(ISNUMBER(C1);C1;"")))))amp;IF(LEN(D1)>2;"";IF(LEFT(D1;1)="<";D1;IF(LEFT(D1;1)="=";D1;IF(LEFT(D1;1)=">";D1;IF(ISNUMBER(D1);D1;"")))))amp;IF(LEN(E1)>2;"";IF(LEFT(E1;1)="<";E1;IF(LEFT(E1;1)="=";E1;IF(LEFT(E1;1)=">";E1;IF(ISNUMBER(E1);E1;"")))))amp;IF(LEN(F1)>2;"";IF(LEFT(F1;1)="<";F1;IF(LEFT(F1;1)="=";F1;IF(LEFT(F1;1)=">";F1;IF(ISNUMBER(F1);F1;"")))))amp;IF(LEN(G1)>2;"";IF(LEFT(G1;1)="<";G1;IF(LEFT(G1;1)="=";G1;IF(LEFT(G1;1)=">";G1;IF(ISNUMBER(G1);G1;"")))))amp;IF(LEN(H1)>2;"";IF(LEFT(H1;1)="<";H1;IF(LEFT(H1;1)="=";H1;IF(LEFT(H1;1)=">";H1;IF(ISNUMBER(H1);H1;"")))))amp;IF(LEN(I1)>2;"";IF(LEFT(I1;1)="<";I1;IF(LEFT(I1;1)="=";I1;IF(LEFT(I1;1)=">";I1;IF(ISNUMBER(I1);I1;""))))) amp; IF(LEN(J1)>2;"";IF(LEFT(J1;1)="<";J1;IF(LEFT(J1;1)="=";J1;IF(LEFT(J1;1)=">";J1;IF(ISNUMBER(J1);J1;""))))) amp; IF(LEN(K1)>2;"";IF(LEFT(K1;1)="<";K1;IF(LEFT(K1;1)="=";K1;IF(LEFT(K1;1)=">";K1;IF(ISNUMBER(K1);K1;""))))) amp; ";" amp; TRUE amp; ";" amp; FALSE amp; ")"
Я применяю свою формулу к ячейкам M2.
После того, как я скопирую свои ячейки M1 и M2, я вставляю значение по значению в N1.
Я заменяю пробел в начале моей формулы в N1 и N2 на ничто, а затем формула отображает результаты.
Дайте мне знать, если у вас возникнут проблемы с этой формулой, потому что я разработал ее на французском языке Excel. Я вышлю вам полный файл.