The Excel VDB function returns the depreciation of an asset for given period, using the double-declining balance method or another method specified by changing the **factor** argument. By default, the VDB function will switch to straight line calculation. VDB stands for variable declining balance.

**Syntax**:= VDB (cost, salvage, life, start, end, [factor], [no_switch])

The VDB function syntax has the following arguments:

**Cost**Required. The initial cost of the asset.**Salvage**Required. The value at the end of the depreciation (sometimes called the salvage value of the asset). This value can be 0.**Life**Required. The number of periods over which the asset is depreciated (sometimes called the useful life of the asset).**Start_period**Required. The starting period for which you want to calculate the depreciation. Start_period must use the same units as life.**End_period**Required. The ending period for which you want to calculate the depreciation. End_period must use the same units as life.**Factor**Optional. The rate at which the balance declines. If factor is omitted, it is assumed to be 2 (the double-declining balance method). Change factor if you do not want to use the double-declining balance method. For a description of the double-declining balance method, see DDB.**No_switch**Optional. A logical value specifying whether to switch to straight-line depreciation when depreciation is greater than the declining balance calculation.- If no_switch is TRUE, Microsoft Excel does not switch to straight-line depreciation even when the depreciation is greater than the declining balance calculation.
- If no_switch is FALSE or omitted, Excel switches to straight-line depreciation when depreciation is greater than the declining balance calculation.

**Example**: Let’s look at some Excel VDB function examples and explore how to use the VDB function as a worksheet function in Microsoft Excel:

**Syntax**: =VDB(B1,B2,B3*365,0,1)

**Result**:

Based on the Excel spreadsheet above, the following VDB examples would return:

**Syntax**: =VDB(B1,B2,B3*12,0,1)**Result**: $16,666.67

**Syntax**: =VDB(B1,B2,B3,0,1)**Result**: $200,000.00

**Syntax**: =VDB(B1,B2,B3,1,4)**Result**: $487,800.00

**Syntax**: =VDB(B1,B2,B3,2,6)**Result**: $557,118.00

**Syntax**: =VDB(B1,B2,B3*12,3,9)**Result**: $95,511.53

**Syntax**: =VDB(B1,B2,B3*12,6,10)**Result**: $62,613.88

**Syntax**: =VDB(B1,B2,B3*12,6,18)**Result**: $181,725.94

**Syntax**: =VDB(B1,B2,B3*12,6,18,1.5)**Result**: $139,598.29

**Syntax**: =VDB(B1,B2,B3,0,0.875,1.5)**Result**: $131,250.00

**Note**:

- We need to provide arguments “period” and “life” in the same units of time: years, months, or days.
- All arguments except no_switch must be positive numbers.
- #VALUE! error – Occurs when the given arguments are non-numeric.
- #NUM! error – Occurs when:
- Any of the supplied cost, salvage, start_period, end_period or [factor] arguments are < 0;
- The given life argument is less than or equal to zero;
- The given start_period is > the given end_period; and
- Start_period > life or end_period > life.