cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Register to attend Discovery Summit 2025 Online: Early Users Edition, Sept. 24-25.
  • New JMP features coming to desktops everywhere this September. Sign up to learn more at jmp.com/launch.
Choose Language Hide Translation Bar
julian
Community Manager Community Manager
Organizing and filtering data in the JMP 19 data table

Data tables come in many sizes. Occasionally, I work with a table that is small enough to fit on screen: no scrolling necessary and everything I need, I can see. Most of the time, however, my data tables are tall, wide, complex, and multifaceted. For tables like these, the new data table organization and filtering tools in JMP shine. Let’s explore some real data to see why.

I’ve been a longtime fan of openfoodfacts.org, which is a “food products database made by everyone, for everyone.” You can find details on most any food item using its website, but my favorite thing about it is that it provides tidy exports of its database in a number of different formats, including a CSV (technically it’s a TSV, a tab-separated file, but JMP has no trouble opening those, either).

image-20250904-192529.png

This file, however, is not for the faint of heart! The uncompressed CSV is 11.6gb, coming in at just over 4 million rows with 243 columns (as of September 2025; the database is continuously updated). Tables like these are unusually hard to navigate, but several new tools in JMP make it easy to keep things organized. Let’s start with organizing those 243 columns.

 

Organizing columns

 

Maximize columns list

Max Columns List.gif

The first thing I’ll do is maximize the columns list in the data table, a new feature in JMP. It’s a simple feature but an incredibly useful one! In fact, any of the tools on the left can be maximized so you can see more of them. In addition to the columns list, being able to maximize an area can be especially useful if you have a large number of table scripts.

Hierarchical (nested) column groups

JMP has long supported grouping columns, but in JMP 19, we can have many levels of grouping to keep our columns organized (bonus: the same thing is true for column scripts).

For this table, I’ll first start with an initial grouping of similar columns by selecting the columns I want to group, then I will right click in the columns list, then Group Columns.

In a table this big, the grouping process will take a little time and care, but after this first round of grouping, our table is already looking more organized.

Screenshot 2025-09-04 at 3.52.03 PM.png

Because we can have multiple levels of grouping, we can go one step further by taking these column groups and putting them into groups themselves.

To do this, I'll select similar column groups and again right-click to group these groups into larger metagroupings of Identification & Metadata (these define what the record is and how it’s tracked), Product Identity & Classification (these describe the product’s “who and what”), Source & Provenance (where the product comes from and how it’s made), Composition & Ingredients (what goes into a product), and Nutrition & Consumption (what it provides to the consumer and in what quantity).

After further grouping our table, our columns list is far more neatly organized and finding columns of specific types becomes far easier. You may also notice that the groups show up in the table header, helping us keep track of which section each of our columns are in.

Screenshot 2025-09-08 at 6.58.46 AM.png

If there is a group of columns that you want to take special note of in the grid, you can right-click on the header group in the table to set a background color for the group. I’ll do that here for the nutrition group of columns.

image-20250908-105959.png

Screenshot 2025-09-08 at 7.02.11 AM.png

Note: For deeply nested tables, you might want to turn off the display of the groups in the table header. You can edit what shows in the table header clicking the red triangle at the top left of the table, then Display Options>Show Header Groups.

image-20250908-110202.png

 

Column tags

In JMP 19, we’re introducing the concept of a column tag. You will find the new Column Tags area at the bottom of the columns list. This section is closed by default unless you have column tags in your data table.

image-20250908-113608.png

 

First, let’s talk about what tags are. Column groups and column tags serve different but complementary purposes in organizing a data table. Groups are structural: they require columns to be contiguous and are really about how the table is physically arranged, almost like chapters in a book. Tags, by contrast, are flexible overlays that let you organize columns conceptually, regardless of where they sit in the table.

A tag can unite nutrition-related columns that live in different groups (say, allergens and the basic nutrition area), or it can cut across groups entirely to highlight something like “most important columns,” or “percentage columns,” allowing you to collect, select, and view them all at once. This flexibility makes tags not just an organizational aid but a powerful analytic tool, because later, when filtering or focusing analysis, you can operate on tagged sets of columns directly instead of hunting through group structures.

For these data, I have found a few different tags to be especially useful:

  • Favorites: An overall tag I use to filter down to only the small set of columns I use most.
  • Macronutrients: A tag to pick out just the carbohydrates, protein, and fat columns.
  • Vitamins: A tag for just the vitamin columns among all the nutrition details.

Creating tags

We can create and assign a tag on the fly by selecting a column or columns in the column list, right-click>Tag>Add Tag…

We can also make tags before applying them by clicking the + button in the Tags area. I find this useful when there are many tags I will use in the table; I can also make them ahead of time for easy application later. I also do this when importing tags that I have made earlier and stored in my preferences (more on that later).

I’ll begin with Macronutrients tag. I find and select the carbohydrates, protein, and fat columns in the columns list, then right-click on of the columns>Tags>Add Tag…

The only item that must be completed in this dialog is the tag name, but I have decided to also set a tag color and description.

image-20250908-114848.png

Because I set a tag color, I can see the tag icon in the data grid and columns list. I find this helpful to identify these columns when I’m scrolling in the table:

image-20250908-115033.png

I’ll make the Vitamins tag next, this time using the + button in the Tags area.

image-20250908-115456.png

It will create the tag, which will be listed in the Tags area of the table, but no columns will be associated with this tag until I’ve added them. I’ll select the 11 Vitamin columns, right-click on one in the columns list, then select Tags>Vitamins.

Screenshot 2025-09-08 at 7.55.59 AM.png

Finally, I’ll make my Favorites tag. I will again use the + in the Column Tags area, and this time, I’ll set a star emoji for this tag. This emoji will show up in the table grid and columns list wherever this tag has been set.

image-20250908-115956.png

I’ll want to set this tag on a few different columns. First, I want it set on all my Macronutrient columns, so I will click that tag in the tags area, which will select all those columns in the table (a really useful trick!). With those columns selected, I’ll right-click one of them in the columns list, then Tags>Favorites.

image-20250908-120212.png

Notice that columns can have many tags applied to them, which reflects the fact that conceptual grouping are often overlapping.

There are a few more columns I want tagged as a favorite, including the product name, total calories (which is named energy-kcal_100g in this table), and which category the product is in. To set those tags, I simply find those columns, right-click in the columns list, then Tags>Favorites.

Using tags

With my tags all set, we can start using them in our usual workflows. Here are some of my favorite ways to use tags:

Selecting columns: By clicking on the tag name in the tags list, the associated columns will be selected in the table. It is similar to the shortcut to selecting columns of interest.

Casting columns by tag: When launching a platform, it’s possible to click into the listing of tags and cast a tag to a role instead of spending time looking for the columns of interest. The columns in that tag will populate the given role.

casting by tag.gif

Filtering the columns list and table: One of my favorite uses of tags is also the most simple: use a tag to filter the listing of columns in the table. To do this, click the filter button at the top right of the columns list, then select a tag from the list. I’ll select my Favorites tag, and the grid and the columns list now shows only those columns that have been tagged as Favorites. We can return to the filter icon to clear that filter or to add other tags to the list. By default, columns with any of the tags selected will show in the table, but you can select Advanced… to set up more complicated conditions (e.g., requiring that columns be tagged with all selected tags in order to show in the table).

filtering columns by tag.gif

With the nested groups and tags in JMP 19, we’ve wrangled these 243 columns into an organized and navigable view that can adapt to our different uses of the table. We turn our attention next to navigating and working with the 4+ million rows of this table!

Filtering data: Dynamic subsets

JMP now includes filter views, which act like dynamic subsets of your data table, letting you bring the power of the data filter you already know from reports straight into the data grid. Instead of filtering only what appears in a graph or analysis, filter views control which rows are actually visible in the table itself. You specify the criteria, and only the rows that match will remain in view, giving you a clean, focused slice of your data to work with. Because filter views can be saved, they travel with the table, making it easy to set up multiple perspectives on the same data set and to toggle quickly between them. In effect, they turn your table into a kind of mini-database: you can carve out subsets of interest, return to them later, and use them as the jumping-off point for deeper exploration and analysis.

Creating a filter view

There are two ways to create a new filter view:

  • Click the + in the Filter Views tab of the data table (in the top left).

image-20250908-142904.png

  • Click the filter plus icon when hovering over the header of a column, which will start a new filter view if you aren’t already in one. Or, if you are already in a filter view, pressing this icon will add this column to the list of columns being used to filter the table.

image-20250908-143013.png

To start, I’ll click the filter plus icon on my categories column so that I can filter my table down to only certain kinds of foods.

image-20250908-145341.png

If you’ve ever used a data filter in JMP before, you’ll recognize it on the right-hand side of the table in this new temporary filter view (the view is temporary because we have not yet saved it).

I have the categories column set as unstructured text so that I have a free text entry field to use as a search box. I’ve typed in “snacks” and set the filter to only show me those products that are in a snacks category. In this case, there are about 244k rows matching snacks somewhere in the category description.

If I want to add another filter to this view, I can click the AND button in the filter, or simply hover over another column I want to add. I’ll add the Calories (energy-kcal_100g) column to my filter and set the range as 50-250. I’ll also add Protein (proteins_100g) to the filter and set that range from 5-10.

image-20250908-145747.png

We’re left with 2,612 rows, down from the 4+ million we started with. It’s still a large number of rows, but far more navigable than the original table and might represent an important subset of the table we want to explore further.

Working with filter views

Once we’re happy with the filters we have set up, we can click the Save View button in the ribbon at the top of the table. Since we have the opportunity to name this filter view, I’ll give it a descriptive name so I can return to it later.

image-20250908-145930.png

When I click the X in the ribbon at the top of the table, this filter view closes, and we return to the original rows in the table. To bring back the view, simply click the name in the filter view tab.

Filter View Open and Close.gif

When working with platforms, filter views work the same way your local and global data filters have worked in the past: the data you see are the data that the platform will analyze.

 

Bonus tips

Tags have superpowers

Column properties in tags

In addition to helping you organize and navigate your table, tags can contain column properties, such as Value Order, Value Labels, or Units. You can use tags to store the metadata you routinely set for columns so that when you encounter those columns, you can set a single tag rather than set many different column properties.

To set a property for a tag, right-click on the tag in the Tags list and select Edit. Then, expand the Column Properties section of the tag dialog to add the properties you want to have set for any column using this tag.

In our example here, I’ll set a column property for the Vitamins tag. Because all of these Vitamin columns are in 100s of grams, I’ll set the Units property for this tag, with the name “per 100 grams.”

image-20250908-152037.png

Now, all of my vitamin columns have inherited this column property from the tag. To see this, I’ll select one of the Vitamin columns, right-click>Column Info.

We can see in the column properties area of column info that there is now a Units property on the column with the colored tag icon next to it, indicating that this property has been inherited from the Vitamins tag.

Advanced note: if we need to, we can override this tag-inherited column property by clicking “Copy Local.” We could then define a version of the column property that is only on this one column without disrupting the column property defined by the tag. While it is sometimes useful and necessary, we recommend that you avoid using column properties on tags you don’t want to flow through to all the columns you have tagged to keep everything conceptually clear in your data table.

image-20250908-152213.png

There are many powerful ways to exploit Column Properties in Tags, and we’ll talk more about those in an upcoming blog post.

Saving tags to use across different tables

When making a tag the first time, it’s saved only on the table you used it on. However, tags are often useful across different tables, especially when working with the same kinds of data repeatedly. To save time, tags can be saved to your preferences so that you may use them later on different tables.

image-20250908-152724.png

To save a tag to your preferences, right-click the tag and select Save to Preferences. I’ll save our Vitamins tag to my preferences now.

If you want to use this tag on a new table, use the Import from Preferences… option when right-clicking in the Tags area. Here is what that looks like in a blank table:

image-20250908-153123.png

After importing this tag to the new table, I can right-click>Edit the Tag to see that all the settings and column properties I set have been retained:

image-20250908-153205.png

Multiline editing for cells

Sometimes there are large blocks of text in a cell, and it’s inconvenient or impractical to make the column wider or the rows taller.

JMP now adds a multiline cell editor at the bottom of the data table! Simply click the gray triangle at the bottom-left corner of the grid to reveal the multiline editor. Any changes you make in the editor take effect immediately. You can close the editor after using it or keep it open as you navigate the table.

Multiline Edit Cells.gif

 

Data tables have never been so powerful

JMP’s latest release takes the data table from being just a container of rows and columns to something more like a living workspace for discovery. With nested groups to tame the sprawl of hundreds or thousands of columns, tags to layer in conceptual organization across the table, and filter views to dynamically carve out the rows that matter, your table becomes cleaner, more navigable, and infinitely more flexible. Then add in conveniences like saved tags, inherited column properties, and the new multiline editor, and the result is a toolset that helps you move gracefully from the simplest data sets to multimillion-row giants.

If you’ve ever felt overwhelmed by large, complicated, or messy tables, JMP is your invitation to experience order, clarity, and speed so you can make discoveries with your data faster than ever.

 

Prefer video? Watch it here.

Last Modified: Sep 12, 2025 12:06 AM