---
title: OptionalColumnProtocol
framework: tabulardata
role: symbol
role_heading: Protocol
path: tabulardata/optionalcolumnprotocol
---

# OptionalColumnProtocol

A type that represents a column that has missing values.

## Declaration

```swift
protocol OptionalColumnProtocol<WrappedElement> : ColumnProtocol
```

## Overview

Overview OptionalColumnProtocol defines the common functionality for column types that support missing values.

## Topics

### Filling an Optional Column

- [filled(with:)](tabulardata/optionalcolumnprotocol/filled(with:).md)

### Generating an Optional Column by Adding Two Columns

- [+(_:_:)](tabulardata/optionalcolumnprotocol/+(_:_:)-2qex0.md)
- [+(_:_:)](tabulardata/+(_:_:)-1i7oh.md)
- [+(_:_:)](tabulardata/+(_:_:)-3exmp.md)

### Generating an Optional Column by Subtracting Two Columns

- [-(_:_:)](tabulardata/optionalcolumnprotocol/-(_:_:)-5xfkx.md)
- [-(_:_:)](tabulardata/-(_:_:)-25cs6.md)
- [-(_:_:)](tabulardata/-(_:_:)-95yoe.md)

### Generating an Optional Column by Multiplying Two Columns

- [*(_:_:)](tabulardata/optionalcolumnprotocol/*(_:_:)-5f5kx.md)
- [*(_:_:)](tabulardata/*(_:_:)-2toor.md)
- [*(_:_:)](tabulardata/*(_:_:)-l9r3.md)

### Generating an Optional Column by Dividing Two Columns

- [/(_:_:)](tabulardata/optionalcolumnprotocol/_(_:_:)-4nmnl.md)
- [/(_:_:)](tabulardata/_(_:_:)-9v3nw.md)
- [/(_:_:)](tabulardata/_(_:_:)-4igyw.md)
- [/(_:_:)](tabulardata/optionalcolumnprotocol/_(_:_:)-3rlo3.md)
- [/(_:_:)](tabulardata/_(_:_:)-4pr65.md)
- [/(_:_:)](tabulardata/_(_:_:)-58kg6.md)

### Generating an Optional Column by Combining a Value

- [+(_:_:)](tabulardata/optionalcolumnprotocol/+(_:_:)-501gg.md)
- [+(_:_:)](tabulardata/optionalcolumnprotocol/+(_:_:)-6ko8x.md)
- [-(_:_:)](tabulardata/optionalcolumnprotocol/-(_:_:)-9mejf.md)
- [-(_:_:)](tabulardata/optionalcolumnprotocol/-(_:_:)-5vffa.md)
- [*(_:_:)](tabulardata/optionalcolumnprotocol/*(_:_:)-orkq.md)
- [*(_:_:)](tabulardata/optionalcolumnprotocol/*(_:_:)-5vorv.md)
- [/(_:_:)](tabulardata/optionalcolumnprotocol/_(_:_:)-7tbmq.md)
- [/(_:_:)](tabulardata/optionalcolumnprotocol/_(_:_:)-56h1d.md)
- [/(_:_:)](tabulardata/optionalcolumnprotocol/_(_:_:)-5qhxr.md)
- [/(_:_:)](tabulardata/optionalcolumnprotocol/_(_:_:)-2xfqa.md)

### Describing an Optional Column

- [description(options:)](tabulardata/optionalcolumnprotocol/description(options:).md)

### Supporting Types

- [WrappedElement](tabulardata/optionalcolumnprotocol/wrappedelement.md)

## Relationships

### Inherits From

- [BidirectionalCollection](swift/bidirectionalcollection.md)
- [Collection](swift/collection.md)
- [ColumnProtocol](tabulardata/columnprotocol.md)
- [Sequence](swift/sequence.md)

### Conforming Types

- [Column](tabulardata/column.md)
- [ColumnSlice](tabulardata/columnslice.md)
- [DiscontiguousColumnSlice](tabulardata/discontiguouscolumnslice.md)

## See Also

### Typed Columns

- [Column](tabulardata/column.md)
- [ColumnSlice](tabulardata/columnslice.md)
- [FilledColumn](tabulardata/filledcolumn.md)
- [DiscontiguousColumnSlice](tabulardata/discontiguouscolumnslice.md)
- [ColumnProtocol](tabulardata/columnprotocol.md)
