Более эффективным способом было бы определить две клавиши:
Вы можете использовать для каждого , что упростит выражение подсчета:
<xsl:key name="monthKey" match="/items/Item" use="@Month"/>
<xsl:key name="noKey" match="/items/Item" use="concat(@Month, '|', @No)"/>
<xsl:for-each select="/items/Item[generate-id() = generate-id(key('monthKey',@Month)[1])]">
<tr>
<td class="ms-vb" style="width: 373px">
<xsl:value-of select="@Month" />
</td>
<td class="ms-vb">
<xsl:for-each select="key('monthKey',@Month)[generate-id() = generate-id(key('noKey', concat(@Month, '|', @No))[1])]">
<xsl:value-of select="count(key('noKey', concat(@Month, '|', @No)))"/>
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
Я сделал образец XML из ваших данных следующим образом, U может изменить XPATH соответственно.
<items>
<Item Month='Jan-18' No='1'/>
<Item Month='Feb-18' No='1'/>
<Item Month='Feb-18' No='1'/>
<Item Month='Apr-18' No='1'/>
<Item Month='Apr-18' No='1'/>
<Item Month='May-18' No='1'/>
<Item Month='May-18' No='1'/>
<Item Month='Jun-18' No='1'/>
</items>