Dear Thorsten > Here is a generalised form: > > #+begin_src emacs-lisp > (defun count-org-items (&optional level operator match scope skip) > "Print a counting of outline items." > (interactive) > (let ((headline-level (or level 1)) ; 1-8 > (op (or operator '=))) ; '>= '<= '> '< > (save-excursion > (message "Counting of level%s%d outline items (match=%s, scope=%s, > skip=%s): %d" > op headline-level match scope skip > (eval (append (list '+) > (org-map-entries > `(lambda () (if (,op (org-outline-level) > ,headline-level) 1 0)) > match scope skip))))))) > #+end_src > > usage: > > ,---------------------------------------- > | (count-org-items 2 '<= "WAITING" 'file) > `---------------------------------------- > > result: > > ,------------------------------------------------------------------------------ > | "Counting of level<=2 outline items (match=WAITING, scope=file, skip=nil): > 3" > `------------------------------------------------------------------------------ > > see C-h v org-map-entries for more info, its very powerfull. Use it > with M-: (count-org-items ...) or write a more sophisticated > (interactive) spec. >
Very impressive. Thank you very much! Martin