If the entries in the internal table are irrelevant, you can do something like this.
DELETE lt_table WHERE par1 <> 'XYZ'.
You can then count the remaining matching records using lines( lt_table ) or DESCRIBE TABLE lt_table LINES l_number_of_lines.
Here is an example.
TYPES: BEGIN OF tt_test, par1 TYPE c LENGTH 3, END OF tt_test. DATA: lt_table TYPE TABLE OF tt_test. DATA: l_number_of_lines TYPE i. FIELD-SYMBOLS: <fs_par1> LIKE LINE OF lt_table. APPEND INITIAL LINE TO lt_table ASSIGNING <fs_par1>. <fs_par1>-par1 = 'XYZ'. APPEND INITIAL LINE TO lt_table ASSIGNING <fs_par1>. <fs_par1>-par1 = 'ABC'. APPEND INITIAL LINE TO lt_table ASSIGNING <fs_par1>. <fs_par1>-par1 = 'XYY'. APPEND INITIAL LINE TO lt_table ASSIGNING <fs_par1>. <fs_par1>-par1 = 'XYZ'. APPEND INITIAL LINE TO lt_table ASSIGNING <fs_par1>. <fs_par1>-par1 = 'XYZ'. l_number_of_lines = LINES( lt_table ). WRITE / l_number_of_lines. DESCRIBE TABLE lt_table LINES l_number_of_lines. WRITE / l_number_of_lines. DELETE lt_table WHERE par1 <> 'XYZ'. l_number_of_lines = LINES( lt_table ). WRITE / l_number_of_lines.
source share