Reputation: 199
Is there a way to get the most commonly used word from a view.. For example, if I have a column with names like this
NAME
John
Mary
Jane
Alan
John
Laura
John
It will return John
because it is the name that appears the most.
Added...
I don't mind using another view as suggested by @Richard Schwartz. In fact, I created it and tried something similar but a little different than your first suggestion.
Here is my code, but it doesn't return the correct value:
Dim var As Variant
Set view1 = db2.getView("pomoc")
var=view1.GetColumnValues(0)
max=-1
field=""
Forall id In var
Set ve=view1.GetEntryByKey(id)
num=ve.ChildCount
If num>max Then
max=num
field=id
End If
End Forall
And I also want to register the entries that are used the same number of times
Upvotes: 1
Views: 130
Reputation: 14628
Are you okay with adding another view? Make it categorized, and then write your code to use a NotesViewNavigator
to walk the categories, looking for the NotesViewEntry
with the highest ChildCount
.
If you are unable to add another view, then you will probably have to use a List:
dim names List as integer
Then write your code to get NotesView.AllEntries, use GetFirstEntry and GetNextEntry to walk the NotesViewEntryCollection, and for each NotesViewEntry execute statements like this:
thisName = thisEntry.ColumnValues(N)
names(thisName) = names(thisName) + 1
Where N is the columnn containing the names.
After you've processed the entire view, do something like this:
maxCount = 0
maxName = ""
forall nameCounter in names
if nameCounter > maxCount then
maxCount = nameCounter
maxName = listtag(nameCounter)
end forall
When this exits, maxName will be the most common name, and maxCount will be the number of occurrances.
Upvotes: 4