# **FLAG**

计算浮动区域中满足条件的单元格往上偏移指定行后的值。

## 语法{#grammar}

FLAG(**exp**, **condition**, **offset**, **condition**)

- **exp**：必需，要返回的值，既可以是一个单元格，也可以是一个表达式。必须含有浮动单元格
- **offset**：可选，往上的偏移量，默认值是1。
- **defvalue**：可选，取值超出浮动行范围时会返回值，默认为`NULL`。
- **condition**：可选，用于过滤浮动行的范围，比如，希望往上找第1个`C1`不为空的值，那么条件写为`C1 IS NOT NULL`

## 示例{#examples}

1. `FLAG(D1)` 返回上一个`D1`的值，如果超出浮动行范围，返回`null`
2. `FLAG(D1, 1, 0)` 返回上一个`D1`的值，如果超出浮动行范围，返回`0`
3. `FLAG(D1, 1, null, D1 IS NOT NULL)` 返回上一个不为空的D1的值，如果超出浮动行范围，返回`null`
