# Count all values of each row from smaller to larger

Show 40 post(s) from this thread on one page
Page 2 of 4 First 1234 Last
• Jan 3rd, 2019, 09:43 AM
motilulla
Re: Count all values of each row from smaller to larger
Quote:

Originally Posted by Fluff
NPV is available in 2003, but don't know about 2000
However IFERROR is not available in 2000

Thank you Fluff, for clearing about NPV that is why formula is not working does there could be a VBA solution for this trouble? </SPAN></SPAN>

Kind Regards,
</SPAN></SPAN>
Moti
</SPAN> </SPAN>
• Jan 3rd, 2019, 09:46 AM
motilulla
Re: Count all values of each row from smaller to larger
Quote:

Originally Posted by XOR LX
My mistake. Of course it's the IFERROR (and potentially also NPV, though I thought that was available in 2000), which is causing the error.

Ah, in that case unfortunately this will not be possible using worksheet formulas alone with your version of Excel. You'll require some VBA. Are you ok with that?

Regards

XOR LX, yes Please if it is possible I would like to have VBA solution
• Jan 3rd, 2019, 09:56 AM
XOR LX
Re: Count all values of each row from smaller to larger
Ah, wait. I'm mistaken again. It's not the entries within those columns which is a restriction on a formula solution, but the number of columns being queried.

I see that you have only 14 columns, so we can just do it.

Try this array formula** and get back to me. Otherwise we'll try the VBA!

=SUBSTITUTE(TEXT(SUM(10^(ROW(INDIRECT("1:"&COUNT(1/FREQUENCY(D7:Q7,D7:Q7))))-1)*COUNTIF(D7:Q7,LARGE(IF(FREQUENCY(D7:Q7,D7:Q7),TRANSPOSE(D7:Q7)),ROW(INDIRECT("1:"&COUNT(1/FREQUENCY(D7:Q7,D7:Q7))))))),REPT("# | ",COUNT(1/FREQUENCY(D7:Q7,D7:Q7))))," | ","",COUNT(1/FREQUENCY(D7:Q7,D7:Q7)))

Regards
• Jan 3rd, 2019, 10:08 AM
motilulla
Re: Count all values of each row from smaller to larger
Quote:

Originally Posted by XOR LX
Ah, wait. I'm mistaken again. It's not the entries within those columns which is a restriction on a formula solution, but the number of columns being queried.

I see that you have only 14 columns, so we can just do it.

Try this array formula** and get back to me. Otherwise we'll try the VBA!

=SUBSTITUTE(TEXT(SUM(10^(ROW(INDIRECT("1:"&COUNT(1/FREQUENCY(D7:Q7,D7:Q7))))-1)*COUNTIF(D7:Q7,LARGE(IF(FREQUENCY(D7:Q7,D7:Q7),TRANSPOSE(D7:Q7)),ROW(INDIRECT("1:"&COUNT(1/FREQUENCY(D7:Q7,D7:Q7))))))),REPT("# | ",COUNT(1/FREQUENCY(D7:Q7,D7:Q7))))," | ","",COUNT(1/FREQUENCY(D7:Q7,D7:Q7)))

Regards

XOR LX, I cannot use this formula because "COUNTIF" also does not support Excel 2000. I think what you thought it would be great if you can build a VBA solution Please. </SPAN></SPAN>

Thank you
</SPAN></SPAN>

Kind Regards,
</SPAN></SPAN>
Moti
</SPAN></SPAN>
• Jan 3rd, 2019, 10:09 AM
XOR LX
Re: Count all values of each row from smaller to larger
Quote:

Originally Posted by motilulla
XOR LX, I cannot use this formula because "COUNTIF" also does not support Excel 2000. I think what you thought it would be great if you can build a VBA solution Please.

Thank you

Kind Regards,

Moti

Ok, just realised it was flawed in any case as it wouldn't work if a given value occurred more than 9 times within the row.

Will get back to you soon with some VBA.

Regards
• Jan 3rd, 2019, 10:14 AM
motilulla
Re: Count all values of each row from smaller to larger
Quote:

Originally Posted by XOR LX
Ok, just realised it was flawed in any case as it wouldn't work if a given value occurred more than 9 times within the row.

Will get back to you soon with some VBA.

Regards

Thank you XOR LX
• Jan 3rd, 2019, 05:56 PM
Akuini
Re: Count all values of each row from smaller to larger
Hi, motilulla
Try this:

Code:

```Sub a1082382a() 'https://www.mrexcel.com/forum/excel-questions/1082382-count-all-values-each-row-smaller-larger.htmlDim vso As Object Dim va, vb Dim i As Long, j As Long, k As Long, s As Long Dim d As Object, vso As Object, x As Variant va = Range("D7", Cells(Rows.count, "Q").End(xlUp)) ReDim vb(1 To UBound(va, 1), 1 To 1) For j = 1 To UBound(va, 1)     Set vso = CreateObject("System.Collections.Sortedlist")     Set d = CreateObject("scripting.dictionary")         For k = 1 To UBound(va, 2)         s = va(j, k)         If Not d.Exists(s) Then             d(s) = 1             Else             d(s) = d(s) + 1         End If     Next     For Each x In d         vso.Add x, d.Item(x)     Next         For i = 0 To vso.count - 1         vb(j, 1) = vb(j, 1) & "|" & vso.GetByIndex(i)     Next         vb(j, 1) = Right(vb(j, 1), Len(vb(j, 1)) - 1)         Next Range("S7").Resize(UBound(vb, 1), 1) = vb End Sub```
• Jan 3rd, 2019, 06:49 PM
motilulla
Re: Count all values of each row from smaller to larger
Quote:

Originally Posted by Akuini
Hi, motilulla
Try this:

Code:

```Sub a1082382a() 'https://www.mrexcel.com/forum/excel-questions/1082382-count-all-values-each-row-smaller-larger.htmlDim vso As Object Dim va, vb Dim i As Long, j As Long, k As Long, s As Long Dim d As Object, vso As Object, x As Variant va = Range("D7", Cells(Rows.count, "Q").End(xlUp)) ReDim vb(1 To UBound(va, 1), 1 To 1) For j = 1 To UBound(va, 1)     Set vso = CreateObject("System.Collections.Sortedlist")     Set d = CreateObject("scripting.dictionary")         For k = 1 To UBound(va, 2)         s = va(j, k)         If Not d.Exists(s) Then             d(s) = 1             Else             d(s) = d(s) + 1         End If     Next     For Each x In d         vso.Add x, d.Item(x)     Next         For i = 0 To vso.count - 1         vb(j, 1) = vb(j, 1) & "|" & vso.GetByIndex(i)     Next         vb(j, 1) = Right(vb(j, 1), Len(vb(j, 1)) - 1)         Next Range("S7").Resize(UBound(vb, 1), 1) = vb End Sub```

Akuini, your VBA code work very perfect! Thank you very much for the help!</SPAN></SPAN>

Query solved!

Kind Regards,
</SPAN></SPAN>
Moti
</SPAN></SPAN>:)
• Jan 4th, 2019, 05:34 AM
Akuini
Re: Count all values of each row from smaller to larger
Quote:

Originally Posted by motilulla
Akuini, your VBA code work very perfect! Thank you very much for the help!

Query solved!

Kind Regards,

Moti
:)

Your welcome & thanks for the reply
• Aug 16th, 2019, 08:40 PM
motilulla
Re: Count all values of each row from smaller to larger
Hello Akuini, I am wondering this VBA were working perfect till last month, tried today it stop at the line below
Code:

` Set vso = CreateObject("System.Collections.Sortedlist")`
and giving an error Run- time error'-2146232576 (80131700)': Automation error I goggled to find the solution but do not get the answer

Please need help do you have any idea what is wrong? I am running excel 2000

Kind Regards,
Moti
Show 40 post(s) from this thread on one page
Page 2 of 4 First 1234 Last