Як включити декілька висловлювань IF в одну клітинку в Google Sheets


17

Я намагаюся змінити значення комірки в Google Таблицях на основі значення сусідньої комірки. Ця сусідня клітина отримує своє значення від кольору сусідньої до неї комірки за допомогою формули з цієї відповіді Quora. Таким чином, значення комірки повинно змінюватися, виходячи з шістнадцяткового коду, отриманого з кольору першої комірки. Наразі є чотири можливі шістнадцяткові значення, тому я намагався помістити чотири різні оператори IF в одну клітинку, тому її значення змінюється виходячи з цього.

Моя перша спроба призвела до помилки аналізу формули:

=if((J2="#00ff00","Read"), if(j2="#ff0000", "Unread"), if(j2="#ff9900","In Progress"), if(j2="#000000", "Not Applicable"))

Зрозуміло, що ви не можете просто розділити, якщо заяви з комами. На основі цього питання щодо переповнення стека я спробував цей код із вкладеними операторами IF:

=if((J2="#00ff00","Read", if(j2="#ff0000", "Unread", if(j2="#ff9900","In Progress",if(j2="#000000", "Not Applicable")))))

Це також призводить до помилки розбору формул.

Чи є якимось чином я можу просто включити декілька операторів IF в одну клітинку, яка буде працювати для мого коду?


Чи можете ви об'єднати їх у = АБО чи щось подібне?
AccioBooks

Відповіді:


19

Використовуйте lookupзамість if:

=lookup(B7,
       {"#000000","#00ff00","#ff0000","#ff9900"},
       {"Not applicable", "Read","Unread","In Progress"}
  ) 

Зверніть увагу, другий параметр повинен бути відсортованим списком.


1
Зауважте, що це не працює, якщо пункти в третьому аргументі є виразом
Крістіан Вестербек,

1
Зауважте, що перший масив ("ключовий" масив) повинен бути відсортований (він працював, коли мій був в алфавітному порядку відсортований за зростанням), щоб він працював за призначенням.
fgblomqvist

@ChristiaanWesterbeek, чи є спосіб цього вирішити, чи просто потрібно використовувати вкладені ifs?
Андрій

23

Коротка відповідь

Проблема в наведених прикладах - це дужки. Застосовуйте їх належним чином.

Пояснення

IF() Функція повинна мати два параметри і необов'язково третій.

IF(logical_expression, value_if_true, value_if_false)

Конкретна проблема с

  • Перший приклад - це те, що зовнішній IF()має занадто багато параметрів.
  • другим прикладом є те, logical_expressionщо зовнішні IF()не повертаються TRUEабоFALSE

У Google Таблицях параметри функцій розділені комами (або крапками з комою, якщо у вашій таблиці використовується коска як десятковий роздільник). Коли круглі дужки використовуються для укладання декількох операцій та функцій всередині функції, вони розглядаються як параметр функції, яка їх містить.

Поширена практика - це ставити внутрішнє IF()як єдине value_if_false, але це можна зробити багатьма способами. Додавання IF()всередину іншого, як value_if_trueі value_if_falseназивається, IF() logical test nestingабо просто IF() nesting.

Нижче наводиться приклад формули, яка має три IF(), дві з яких використовуються для визначення value_if_falseбатьківського IF(). Для читабельності застосовується багаторядковий та вертикальний вирівнювання стилів дужок

 =IF(logical_expression, value_if_true, 
     IF(logical_expression, value_if_true, 
        IF(logical_expression, value_if_true, value_if_false
          )
       )
    )

Наведений вище стиль можна використовувати в написанні формул Google Sheets. Я вважаю це корисним для налагодження формули.

Довідково


1
Дуже корисно, особливо відформатований багаторядковий зразок - значно полегшив його розуміння та реалізацію.
Лука

4

Я щойно з'ясував, як поєднувати, чи і.

Приклад:

=IF(OR(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(AND(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(OR(AND(B3>49,C3>49),AND(B3>49,D3>49),AND(C3>49,D3>49)),”Won”,”Failed”)

Тож для вашого прикладу:

= if(OR(J2="#00ff00",j2="#ff0000",j2="#ff9900"),"True","False")

Джерело: комбіноване використання IF та AND або логічних функцій у електронній таблиці Google Doc .


1

Наприклад, ви можете вкладати заяви IF

If(if(if(when all 3 equal true)))

Буде працювати

АБО

ви можете використовувати вкладений IFAND, наприклад

IF(AND(AND()))

Також буде працювати.


Функція IF () вимагає щонайменше двох параметрів. Дивіться webapps.stackexchange.com/a/89068/88163
Rubén

1

Вам запропонували теорію та кращі підходи, але конкретно відповісти:

Чи є якимось чином я можу просто включити декілька операторів IF в одну клітинку, яка буде працювати для мого коду?

будь ласка, спробуй:

=if(J2="#00ff00","Read", if(J2="#ff0000", "Unread", if(J2="#ff9900","In Progress",if(J2="#000000", "Not Applicable"))))

Тобто, ваша друга спроба без першої дужки, що відкривається, і без останньої дужки, що закривається.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.