Построение формулы Excel на основе ссылок на ячейки

#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 строками:

  1. Значение A1 должно отличаться от единицы <> 1
  2. Значение 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. Я вышлю вам полный файл.