---
schema_version: "1"
id: ab49400ee6148f6d542ebae738ccc0ae965540cba14ef446cf6523eed6e3f40c
title: MDP Apply Table Transformers
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/mktg/264-0-0/mcidp_data_streams_tc_transformers_table_apply.md
canonical_url: https://help.salesforce.com/s/articleView?id=mktg.mcidp_data_streams_tc_transformers_table_apply.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 773d1d8c3c33940c999f0aeacba3d5b2037172f05bb194d97340e1b2e0f6ecdc
description: The table transformer enables you to customize a table’s start and end rows and columns.
products:
  - Marketing
  - Marketing Cloud Intelligence
release: "264"
---
# MDP Apply Table Transformers

The table transformer enables you to customize a table’s start and end rows and columns.

**Example:**

This file is several tables positioned one under the other. In this case, when uploading the file, the platform recognizes the first table. If you want to create a data stream based on one of the lower tables, for example, the table titled “Spring 2016”, you must use the table transformer.

![Table transformer example 1](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mcidp-264-0-0-production-enus/6ea21a7c-b623-43b5-9bb1-3174d8e8301e/mcidp/images/data_streams_transf_table_ex1.png)

**Another example:**

The data in this file is spread across the columns. In this case, the platform sometimes recognizes the table located in later columns, but this isn’t always the case. If you want to upload a table located in later columns, use the table transformer and set the starting column manually.

![Secont transformer example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mcidp-264-0-0-production-enus/6ea21a7c-b623-43b5-9bb1-3174d8e8301e/mcidp/images/data_streams_transf_table_ex2.png)

1. Navigate to the **Import** tab.
2. Expand **Data Streams List**.
3. Create a data stream or edit an existing one.
4. In the **Preview Source** screen, click **Edit Transformers**. File transformers are added by default.
5. In the **Transformers in Use** section, next to the Table transformer, click **Edit**. Table transformers are added by default.

You can define the table’s boundaries by defining the start and end of the table (rows or columns) or by using an expression.

- To define the table’s start and end:
    
    ![Define table start/end](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mcidp-264-0-0-production-enus/6ea21a7c-b623-43b5-9bb1-3174d8e8301e/mcidp/images/data_streams_transf_table1.png)
    
    1. In the **Table Start At** section, set the table’s start rows and columns. The starting row and column can be set according to row and column number. The count starts at zero, meaning the first row of the file is row number 0 and the first column is column number 0.
    2. If you want the platform to automatically recognize the start row or column, use the **Auto settings**. If set to auto, the platform uses the regular algorithm to recognize the data placement.
    3. In the **Table End At** section, use one of these options:
        - **Find Automatically** — Find the table’s end using the platform's algorithm.
        - **After Identifying Rows in the Table** — Find the table’s end according to a set number of rows or columns.
        - **After Identifying Empty Rows** — Find the table’s end according to the number of empty rows after the last row.
- To define the table’s start or end with an expression:
    
    ![Define start/stop with an expression](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mcidp-264-0-0-production-enus/6ea21a7c-b623-43b5-9bb1-3174d8e8301e/mcidp/images/data_streams_transf_table2.png)
    
    This is appropriate when the table’s location in the file changes from upload to upload. The relevant variables for these expressions are:
    
    - **csv\['row'\]** — Returns the array of each row’s values. You can specify the column by using \[index\]. For example, csv\['row'\]\[0\] returns the value of the first cell for each row, and csv\['row'\]\[1\] returns the value of the second cell for each row, etc.
    - **csv\['prev\_row'\]** — Returns the array of values of the previous row relative to csv\['row'\].
    - **csv\['row\_non\_empty\_cells'\]** — Returns the number of non-empty cells found in each csv\['row'\].