# List all existing tags in column except a few specified ones?

**URL:** https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955
**Category:** Support
**Created:** [June 9, 2015, 8:26pm UTC](https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955 "2015-06-09T20:26:35Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![theG](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/t/977dab/32.png) [@theG](https://community.mp3tag.de/u/theG)
#### Post date: [June 9, 2015, 8:26pm UTC](https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955/1 "2015-06-09T20:26:35Z")

</div>

Hello.

Ok, here what I want to do:  
Basically, I want a column that tells me if there are unwanted tags that exists.  
So the column will tell me if there are tags other than the following ones that exists:

%ALBUM%  
%ALBUMARTIST%  
%ALBUMTYPE%  
%ARTIST%  
%COMPILATION%  
%DISCNUMBER%  
%EDITION%  
%LENGTH%  
%RELEASE DATE%  
%TITLE%  
%TRACK%  
%YEAR%  
%COMMENT%

How do I do that?

EDIT:

Ah, I found a way, here it is.  
The way I tag things, all the tags in the above list should be there, except %COMMENT% that is sometimes there, sometimes not.  
The way I did it, there will be a black square in the column if there are missing wanted tags, or if there are tags that are not in the above list.  
Here it is:

```
$if($eql($len($list(,,)),$add($if(%COMMENT%,$len(COMMENT%COMMENT%),0),$add(91,$len(%ALBUM%%ALBUMARTIST%%ALBUMTYPE%%ARTIST%%COMPILATION%%DISCNUMBER%%EDITION%%LENGTH%%RELEASE DATE%%TITLE%%TRACK%%YEAR%)))),, █)
```

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [June 10, 2015, 4:08am UTC](https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955/2 "2015-06-10T04:08:26Z")

</div>

> [@Guillaume](#):
>
> ...  
> Basically, I want a column that tells me if there are unwanted tags that exists.

Wouldn't it be easier to select all files and then have a look at the extended tags dialogue (Alt-T) where you can see which fields are present?  
There you can delete the unwanted ones in more or less one go.

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [June 10, 2015, 2:28pm UTC](https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955/3 "2015-06-10T14:28:50Z")

</div>

> [@Guillaume](#):
>
> ... I want a column that tells me if there are unwanted tags that exists. ... How do I do that?

Here is a proposal to be used within the Mp3tag filter dialog ...

Files with tag fields only from the list:  
`ARTIST ALBUMARTIST ALBUM TRACK TITLE COMPOSER YEAR GENRE`

```auto
"$regexp($regexp($list(' ~~','~~','=='),'~~(.+?)~~.+?==','$1~~'),'((ARTIST|ALBUMARTIST|ALBUM|TRACK|TITLE|COMPOSER|YEAR|GENRE)~~)',)" IS ""

```

All files with additional tag fields in addition to those in the list ...

```auto
NOT ("$regexp($regexp($list(' ~~','~~','=='),'~~(.+?)~~.+?==','$1~~'),'((ARTIST|ALBUMARTIST|ALBUM|TRACK|TITLE|COMPOSER|YEAR|GENRE)~~)',)" IS "")

```

If someone needs an indicator in the listview, which displays only the existence of other tag-field names, more than the basic set of tag-field names, then it can be done with this formatstring ...

```auto
$iflonger($regexp($regexp($list(' ~~','~~','=='),'~~(.+?)~~.+?==','$1~~'),'((ARTIST|ALBUMARTIST|ALBUM|TRACK|TITLE|COMPOSER|YEAR|GENRE)~~)',),0,'●',)

```

DD.20150610.1828.CEST, DD.20150613.1345.CEST

---

<div class="post-metadata">

### Author: ![theG](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/t/977dab/32.png) [@theG](https://community.mp3tag.de/u/theG)
#### Post date: [June 10, 2015, 3:51pm UTC](https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955/4 "2015-06-10T15:51:11Z")

</div>

I wanted to avoid the dialog and filter route because I was making changes to tags to 2,85TB worth of FLAC files, then I had to do the same to the mp3 version of my FLAC library. I add new albums on a weekly basis so it was easier to just have a small column that shows something (the black square) in case there were missing essential(to me) tags or unwanted ones. I even added a few conditions so I know if I make a typo in the "Album Type", for instance.

I figured a way to make it work exactly the way I wanted, and thanks for helping out, really appreciated.

Finally came out with this, where in this example track #4 have missing artwork and track #5 have unwanted tags:

![](http://perseide.web-anonymous.com/Mp3TagsExample.jpg)

---

<div class="post-metadata">

### Author: ![tagmusing](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/t/ee59a6/32.png) [@tagmusing](https://community.mp3tag.de/u/tagmusing)
#### Post date: [June 12, 2015, 4:38am UTC](https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955/5 "2015-06-12T04:38:10Z")

</div>

Nice!  
But how did you do it?

---

<div class="post-metadata">

### Author: ![theG](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/t/977dab/32.png) [@theG](https://community.mp3tag.de/u/theG)
#### Post date: [June 12, 2015, 6:16pm UTC](https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955/6 "2015-06-12T18:16:01Z")

</div>

> [@tagmusing](#):
>
> Nice!  
> But how did you do it?

For the artwork, it's as easy as this: `$if(%_covers%, ◌, '['●']')`

Now, for the [●] to show if there are unwanted tags, the code is as follow:

```auto
$if($eql($len($list(,,)),$add($if(%COMMENT%,$len(COMMENT%COMMENT%),0),$add(91,$len(%ALBUM%%ALBUMARTIST%%ALBUMTYPE%%ARTIST%%COMPILATION%%DISCNUMBER%%EDITION%%LENGTH%%RELEASE DATE%%TITLE%%TRACK%%YEAR%)))),, '['●']')

```

`$list(,,)` gives all existing tags in this format: TAG1VALUE1TAG2VALUE2, etc..  
So I get the length of `$list(,,)` and expect it to be equal to the length of the tag names I want + their values.  
If it's not, then there are unwanted tags and it shows a [●].  
For the first track in the screenshot, `$list(,,)` would be:

> [@](#):
>
> ALBUMHomelessARTISTFinal FlashALBUMARTISTFinal FlashDISCNUMBER1/1COMPILATION0LENGTH04:37TITLEChosen GenerationTRACK1/10YEAR2010ALBUMTYPEAlbumEDITIONOriginalRELEASE DATE2010

The 91 in the code is the length of the tag names put together: ALBUMARTISTALBUMARTISTDISCNUMBERCOMPILATIONLENGTHTITLETRACKYEARALBUMTYPEEDITIONRELEASE DATE  
It wasn't necessary, it was just to make the code shorter. It was either this:

```auto
$add(91,$len(%ALBUM%%ALBUMARTIST%%ALBUMTYPE%%ARTIST%%COMPILATION%%DISCNUMBER%%EDITION%%LENGTH%%RELEASE DATE%%TITLE%%TRACK%%YEAR%))

```

Or this:

```auto
$len(ALBUMARTISTALBUMARTISTDISCNUMBERCOMPILATIONLENGTHTITLETRACKYEARALBUMTYPEEDITIONRELEASE DATE%ALBUM%%ALBUMARTIST%%ALBUMTYPE%%ARTIST%%COMPILATION%%DISCNUMBER%%EDITION%%LENGTH%%RELEASE DATE%%TITLE%%TRACK%%YEAR%)

```

%COMMENT% is not always in my tags, so I count the length of it if it's present or not, depending.

Let say there is a tag called FOO and its value is BAR. I expect the length of $list(,,) to be a precise number because I know the length of the tags I want put together. Now, FOO is not in the tags I want. That's a +3 in length, and another +3 in length for its value (BAR).  
Length of $list(,,) is now longer by 6 chars than what I expect. That's when I get the [●] to tell me there are unwanted tags.

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [June 13, 2015, 9:13am UTC](https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955/7 "2015-06-13T09:13:16Z")

</div>

> [@Guillaume](#):
>
> For the artwork, it's as easy as this: $if(%\_covers%, ◌, '['●']') ...

Regarding column setup for me the easiest method is ... value: %\_covers%  
If there is no cover embedded, then the listview field is blank, otherwise it displays the number of embedded covers.

DD.20150613.1313.CEST

---

<div class="post-metadata">

### Author: ![system](https://community.mp3tag.de/uploads/default/original/2X/c/ce7035d426cb755a7916793326d23b465222a407.png) [@system](https://community.mp3tag.de/u/system)
#### Post date: [February 9, 2026, 12:25pm UTC](https://community.mp3tag.de/t/list-all-existing-tags-in-column-except-a-few-specified-ones/16955/8 "2026-02-09T12:25:42Z")

</div>


