Notion if() Formula (with Basic & Advanced Examples)

Welcome to our comprehensive guide on the if() function in Notion, a powerful tool for creating dynamic and conditional logic within your databases.

In this article, you will learn how to use the ‘If’ function effectively, delve into practical examples, explain associated functions, and provide real-world scenarios to take your Notion skills to the next level.

Notion if Formula

Understanding IF Function in Notion

The if() function in Notion is a powerful tool used in formulas to create conditional logic. It allows you to set conditions that, when met, result in a specific output.

The basic structure of an ‘If’ function is:

if(condition, value_if_true, value_if_false)
  1. Condition: This is a logical statement that is evaluated as either true or false.
  2. Value_if_true: The result/output if the condition is true.
  3. Value_if_false: The result/output if the condition is false.

Additional Tips for Using the ‘IF’ Function

  1. Nesting Conditions: You can nest multiple ‘If’ functions to handle complex scenarios.
  2. Combining with Other Functions: Incorporate functions like dateBetween(), contains(), etc., for more advanced conditions.
  3. Testing and Debugging: Start with simple conditions and gradually add complexity. This makes it easier to find and fix errors.

The ‘If’ function is a versatile tool that, when mastered, can significantly enhance your productivity and organization in Notion. Experiment with different conditions and scenarios to get the most out of this feature.

What to Do with IF Function in Notion?

  • Project Management: Automate status updates based on task progress or deadlines.
  • Budget Tracking: Categorize expenses as “Within Budget”, “Near Limit”, or “Over Budget” based on predefined thresholds.
  • Personal Organization: Use for habit tracking, categorizing journal entries, or managing personal to-dos.

The Basic Examples of IF function

The examples below represent how the if() function can be used in Notion to create conditional logic based on various criteria, including numeric comparisons, property values, and date calculations.

Example 1: Simple True/False Condition

  • Condition: 5 > 3 (Is 5 greater than 3?)
  • Value_if_true: "Yes"
  • Value_if_false: "No"
if(5 > 3, "Yes", "No")

Output: Since 5 is indeed greater than 3, the output is "Yes".

Example 2: Checking a Property Value

  • Condition: prop("Status") == "Completed"
  • Value_if_true: "Task Done"
  • Value_if_false: "In Progress"

Assuming you have a “Status” property in your database:

if(prop("Status") == "Completed", "Task Done", "In Progress")

Output: If the “Status” of an item is “Completed”, the output will be "Task Done". Otherwise, it’s "In Progress".

Example 3: Date Comparison

  • Condition: dateBetween(now(), prop("Deadline"), "days") <= 7
  • Value_if_true: "Due Soon"
  • Value_if_false: "Due Later"

This assumes a “Deadline” date property in your database:

if(dateBetween(now(), prop("Deadline"), "days") <= 7, "Due Soon", "Due Later")

Output: If the “Deadline” is within 7 days from now, the output is "Due Soon". If it’s more than 7 days away, the output is "Due Later".

Example 4: Nested If Function

  • Condition: prop("Score") >= 90
  • Value_if_true: "A Grade"
  • Value_if_false: Nested if: if(prop("Score") >= 70, "B Grade", "C Grade")

For a grading system based on a “Score” property:

if(prop("Score") >= 90, "A Grade", if(prop("Score") >= 70, "B Grade", "C Grade"))


  • If “Score” is 90 or above, the output is "A Grade".
  • If “Score” is between 70 and 89, the output is "B Grade".
  • If “Score” is below 70, the output is "C Grade".

Must-Know Functions in the Formulas

  1. or(): This function is used to check if at least one of the given conditions is true. For example, or(condition1, condition2) returns true if either condition1 or condition2 (or both) are true.
  2. dateBetween(): This function calculates the difference between two dates. It’s used like dateBetween(date1, date2, "unit"), where “unit” can be “days”, “months”, etc. It returns the number of units between date1 and date2.
  3. and(): Similar to or(), but and(condition1, condition2) returns true only if both condition1 and condition2 are true. It’s used to check multiple conditions that must all be met.
  4. prop(): This function is used to reference a property of a database item in Notion. For example, prop("Name") would return the value of the “Name” property for a given row in the database.
  5. now(): This function returns the current date and time. It’s often used in date comparisons, like checking if a task’s deadline is today or in the future.

Advanced Examples of IF Function

The examples below represent how the ‘If’ function in Notion can be tailored to fit various needs and scenarios, providing a flexible tool for database management.

1. Automating Task Categorization Based on Deadlines

You have a task list with a column for “Status” and another for “Deadline”. You want to automatically categorize tasks as “Urgent”, “Upcoming”, or “On Track” based on the deadline.

  • Urgent: If the deadline is today.
  • Upcoming: If the deadline is within the next 7 days.
  • On Track: For all other cases.

Here’s how you can write this using the ‘If’ function in a formula column:

if(prop("Deadline") == now(), "Urgent", if(dateBetween(prop("Deadline"), now(), "days") <= 7, "Upcoming", "On Track"))

Output: It categorizes tasks as “Urgent” if the deadline is today, “Upcoming” if the deadline is within the next 7 days, and “On Track” for all other cases.

2. Task Priority Based on Deadline and Importance

You have a task list with “Deadline” and “Importance” (High, Medium, Low) columns. You want to categorize tasks into different priority levels:

  • High Priority: Tasks that are either “High” importance or due within 3 days.
  • Medium Priority: “Medium” importance tasks not falling in the High Priority category.
  • Low Priority: All other tasks.
if(or(prop("Importance") == "High", dateBetween(now(), prop("Deadline"), "days") <= 3), "High Priority", if(prop("Importance") == "Medium", "Medium Priority", "Low Priority"))

Output: Assigns “High Priority” to tasks that are of “High” importance or due within 3 days, “Medium Priority” to tasks of “Medium” importance, and “Low Priority” to all other tasks.

2. Categorizing Expenses

For a budget tracker with an “Amount” and “Category” column, categorize expenses as “Large”, “Medium”, or “Small” based on the amount:

  • Large Expense: Above $1000.
  • Medium Expense: Between $500 and $1000.
  • Small Expense: Below $500.
if(prop("Amount") > 1000, "Large Expense", if(and(prop("Amount") >= 500, prop("Amount") <= 1000), "Medium Expense", "Small Expense"))

Output: Categorizes expenses as “Large Expense” for amounts above $1000, “Medium Expense” for amounts between $500 and $1000, and “Small Expense” for amounts below $500.

3. Student Grade Evaluation

In a grade tracker for students, where each student has a “Score” out of 100, categorize their performance:

  • Excellent: 90 and above.
  • Good: Between 70 and 89.
  • Needs Improvement: Below 70.
if(prop("Score") >= 90, "Excellent", if(and(prop("Score") >= 70, prop("Score") < 90), "Good", "Needs Improvement"))

Output: Evaluates grades as “Excellent” for scores of 90 and above, “Good” for scores between 70 and 89, and “Needs Improvement” for scores below 70.

4. Event Attendance Status

For an event planner with “RSVP Status” and “Attendance” columns, determine if guests are expected, not coming, or undecided:

  • Expected: RSVP is “Yes” and Attendance is “Confirmed”.
  • Not Coming: RSVP is “No”.
  • Undecided: Any other scenario.
if(and(prop("RSVP Status") == "Yes", prop("Attendance") == "Confirmed"), "Expected", if(prop("RSVP Status") == "No", "Not Coming", "Undecided"))

Output: Determines guests as “Expected” if RSVP is “Yes” and Attendance is “Confirmed”, “Not Coming” if RSVP is “No”, and “Undecided” for other scenarios.

5. Personal Fitness Tracker

In a fitness tracker, categorize workout days based on intensity and duration:

  • High Intensity: More than 1 hour of workout and labeled as “Intense”.
  • Moderate: 30 minutes to 1 hour, regardless of intensity.
  • Light: Less than 30 minutes or rest days.
if(and(prop("Duration") > 60, prop("Intensity") == "Intense"), "High Intensity", if(and(prop("Duration") >= 30, prop("Duration") <= 60), "Moderate", "Light"))

Output: Categorizes workout days as “High Intensity” for workouts over 1 hour and intense, “Moderate” for 30 minutes to 1 hour workouts, and “Light” for workouts less than 30 minutes or rest days.

Leave a Comment