I have a code option - not ideal but could reduce workflow complexity if you know some python. On the Python Script you can manually add multiple output ports. So you’d give it 16 output ports

The a snippet of code such as this could determine the ports for each of the rows, based on Asset Category:
import knime.scripting.io as knio
import pandas as pd
# Sample input data with mapping
mapping_data = {
"Asset Category": ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P"],
"output_table": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
}
mapping_df = pd.DataFrame(mapping_data)
# Sample input asset data
asset_df = knio.input_tables[0].to_pandas()
# Merge the asset data with the mapping data to get the corresponding output_table values
merged_df = asset_df.merge(mapping_df, on="Asset Category")
# Fill the output_tables based on merged data
for i in range(16):
output_table = knio.output_tables[i]
output_table_data = merged_df[merged_df["output_table"] == i]
# Append the data to the existing output_table DataFrame
output_table = pd.concat([output_table, output_table_data], ignore_index=True)
knio.output_tables[i] = knio.Table.from_pandas(output_table)
Grouped Row Splitter using Python.knwf (11.1 KB)