… and also could be my understanding of English is not at the highest 
My Dataview knowledge ends here, or at least I reached the point where I would say that I think this can’t be achieved with plain Dataview. It wouldn’t be the first time that some guru would show me wrong 
If I understand, you need to:
- Preserve the original file reference as part of the flattening.
- Then group by People.
- Finally, access the frontmatter of the associated file(s) where each person appeared.
Instead of flattening the list of names, you need to create a record that holds both the person and their originating file. I think you can’t do this directly in plain Dataview, but you can do it with DataviewJS.
I would love to see someone come up with a solution for Dataview, as I love to see “complex” things to be solved with Dataview. But, if you’re open to trying DataviewJS … it’s hard to test this for me, as I don’t have a source, so it could be that this will not work at first.
```dataviewjs
// Get all notes where:
// - the YAML frontmatter has 'places_mentioned' that includes this current file name
// - the YAML 'type' includes "document"
const pages = dv.pages()
.where(p => p.file.frontmatter?.places_mentioned?.includes(dv.current().file.name))
.where(p => p.file.frontmatter?.type?.includes("document"));
// We'll store people as keys in this object, with an array of associated date + link objects
let peopleMap = {};
// Loop through all the matched notes
for (let page of pages) {
// Get the list of people from the current note's frontmatter (or an empty array if missing)
let people = page.file.frontmatter.people ?? [];
// Loop through each person mentioned in this file
for (let person of people) {
// If this person isn't already in the map, initialize them with an empty array
if (!peopleMap[person]) {
peopleMap[person] = [];
}
// Push an object to this person's array that includes:
// - the date from the file frontmatter
// - the link to the file itself
peopleMap[person].push({
date: page.file.frontmatter.date,
link: page.file.link
});
}
}
// Now generate a table:
// - First column: person name
// - Second column: joined list of dates they appear in
// - Third column: joined list of document links they appear in
dv.table(
["People", "Dates", "Documents"],
Object.entries(peopleMap).map(([person, entries]) => [
person,
entries.map(e => e.date).join(", "),
entries.map(e => e.link).join(", ")
])
);
```
Comments //
are mainly for me when translating your Dataview into DataviewJS, but they can also help you understand what is going on.
Once again - I hope that someone will come up with a Dataview solution, or … if you go with DataviewJS - at first, this could run into a few errors 
Cheers, Marko 