Hi @prasadRvaidya
I stuck an array of 100 objects into a compose

And came up with the following:

A compose to define the batch size, one to calculate the No of Batches which will round down and then another to check if there is a remainder and add 1 to no of batches. So if you had 100 records and batch size was 22, 100/22 = 4 remainder 12, so there would be a remainder and no of batches would be 5.
div(length(outputs('ComposeMyArrayOf100Records')),outputs('ComposeBatchSize'))
if(
equals(mod(length(outputs('ComposeMyArrayOf100Records')),outputs('ComposeBatchSize')),0),
outputs('ComposeCalcNoBatches'),
add(outputs('ComposeCalcNoBatches'),1)
)
Then there is an apply to each that uses range from 0 and count based on number of batches, which creates an array 0,1,2,3,4 and we can use take and skip to skip a multiple of 0*batchsize i.e. 0, 1* batchsize i.e. 22, 2* batch size i.e. 44 etc and take the next 22 records. This will loop 5 times and create 5 html tables and emails with the last email having just 12 records.
take(skip(outputs('ComposeMyArrayOf100Records'), mul(item(), outputs('ComposeBatchSize'))), outputs('ComposeBatchSize'))

Cheers
Damien
Please take a look and subscribe to my YouTube Channel for more Power Platform ideas and concepts. Thanks