Counting duplicate values in a sequence - for football scores
I currently have a column of values like the one below, listing the outcomes of football matches.
Lost
Lost
Lost
Won
Drew
Drew
Won
Won
Using this formula, I've been able to calculate where a sequence is repeated - so for the list above, there are three 'Lost' in a row.
=IF(A2=A1,B1+1,1)
However, I'd like to calculate where the value is either 'Drew' or 'Won' (thereby showing the number of rows without a "lost" appearing. Is this possible?
Thank you
microsoft-excel
add a comment |
I currently have a column of values like the one below, listing the outcomes of football matches.
Lost
Lost
Lost
Won
Drew
Drew
Won
Won
Using this formula, I've been able to calculate where a sequence is repeated - so for the list above, there are three 'Lost' in a row.
=IF(A2=A1,B1+1,1)
However, I'd like to calculate where the value is either 'Drew' or 'Won' (thereby showing the number of rows without a "lost" appearing. Is this possible?
Thank you
microsoft-excel
1
Do you want tocount
(as the title of your question indicates) or find the location (as you mention in the question)? Can you edit your question to show us the expected outcome?
– cybernetic.nomad
Dec 7 at 15:19
If you just want a total count, then something like=COUNTA(A1:A8)-COUNTIF(A1:A8,"Lost")
?
– fixer1234
Dec 8 at 7:36
add a comment |
I currently have a column of values like the one below, listing the outcomes of football matches.
Lost
Lost
Lost
Won
Drew
Drew
Won
Won
Using this formula, I've been able to calculate where a sequence is repeated - so for the list above, there are three 'Lost' in a row.
=IF(A2=A1,B1+1,1)
However, I'd like to calculate where the value is either 'Drew' or 'Won' (thereby showing the number of rows without a "lost" appearing. Is this possible?
Thank you
microsoft-excel
I currently have a column of values like the one below, listing the outcomes of football matches.
Lost
Lost
Lost
Won
Drew
Drew
Won
Won
Using this formula, I've been able to calculate where a sequence is repeated - so for the list above, there are three 'Lost' in a row.
=IF(A2=A1,B1+1,1)
However, I'd like to calculate where the value is either 'Drew' or 'Won' (thereby showing the number of rows without a "lost" appearing. Is this possible?
Thank you
microsoft-excel
microsoft-excel
asked Dec 7 at 14:19
user1901025
1
1
1
Do you want tocount
(as the title of your question indicates) or find the location (as you mention in the question)? Can you edit your question to show us the expected outcome?
– cybernetic.nomad
Dec 7 at 15:19
If you just want a total count, then something like=COUNTA(A1:A8)-COUNTIF(A1:A8,"Lost")
?
– fixer1234
Dec 8 at 7:36
add a comment |
1
Do you want tocount
(as the title of your question indicates) or find the location (as you mention in the question)? Can you edit your question to show us the expected outcome?
– cybernetic.nomad
Dec 7 at 15:19
If you just want a total count, then something like=COUNTA(A1:A8)-COUNTIF(A1:A8,"Lost")
?
– fixer1234
Dec 8 at 7:36
1
1
Do you want to
count
(as the title of your question indicates) or find the location (as you mention in the question)? Can you edit your question to show us the expected outcome?– cybernetic.nomad
Dec 7 at 15:19
Do you want to
count
(as the title of your question indicates) or find the location (as you mention in the question)? Can you edit your question to show us the expected outcome?– cybernetic.nomad
Dec 7 at 15:19
If you just want a total count, then something like
=COUNTA(A1:A8)-COUNTIF(A1:A8,"Lost")
?– fixer1234
Dec 8 at 7:36
If you just want a total count, then something like
=COUNTA(A1:A8)-COUNTIF(A1:A8,"Lost")
?– fixer1234
Dec 8 at 7:36
add a comment |
1 Answer
1
active
oldest
votes
Here is a module sub that looks through column A until encountering a blank cell and prints the largest non-"Lost" streak to cell B1.
Sub CountNonLoss()
Dim nonloss As Integer
Dim LongestStreak As Integer
Dim Val
Dim streak As New Collection
nonloss = 0
LongestStreak = 0
Range("A1").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value <> "Lost" Then
nonloss = nonloss + 1
Else
streak.Add nonloss
nonloss = 0
End If
ActiveCell.Offset(1, 0).Select
Loop
For Each Val In streak
If Val > LongestStreak Then
LongestStreak = Val
End If
Next Val
Range("B1").Value = LongestStreak
End Sub
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1381646%2fcounting-duplicate-values-in-a-sequence-for-football-scores%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Here is a module sub that looks through column A until encountering a blank cell and prints the largest non-"Lost" streak to cell B1.
Sub CountNonLoss()
Dim nonloss As Integer
Dim LongestStreak As Integer
Dim Val
Dim streak As New Collection
nonloss = 0
LongestStreak = 0
Range("A1").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value <> "Lost" Then
nonloss = nonloss + 1
Else
streak.Add nonloss
nonloss = 0
End If
ActiveCell.Offset(1, 0).Select
Loop
For Each Val In streak
If Val > LongestStreak Then
LongestStreak = Val
End If
Next Val
Range("B1").Value = LongestStreak
End Sub
add a comment |
Here is a module sub that looks through column A until encountering a blank cell and prints the largest non-"Lost" streak to cell B1.
Sub CountNonLoss()
Dim nonloss As Integer
Dim LongestStreak As Integer
Dim Val
Dim streak As New Collection
nonloss = 0
LongestStreak = 0
Range("A1").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value <> "Lost" Then
nonloss = nonloss + 1
Else
streak.Add nonloss
nonloss = 0
End If
ActiveCell.Offset(1, 0).Select
Loop
For Each Val In streak
If Val > LongestStreak Then
LongestStreak = Val
End If
Next Val
Range("B1").Value = LongestStreak
End Sub
add a comment |
Here is a module sub that looks through column A until encountering a blank cell and prints the largest non-"Lost" streak to cell B1.
Sub CountNonLoss()
Dim nonloss As Integer
Dim LongestStreak As Integer
Dim Val
Dim streak As New Collection
nonloss = 0
LongestStreak = 0
Range("A1").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value <> "Lost" Then
nonloss = nonloss + 1
Else
streak.Add nonloss
nonloss = 0
End If
ActiveCell.Offset(1, 0).Select
Loop
For Each Val In streak
If Val > LongestStreak Then
LongestStreak = Val
End If
Next Val
Range("B1").Value = LongestStreak
End Sub
Here is a module sub that looks through column A until encountering a blank cell and prints the largest non-"Lost" streak to cell B1.
Sub CountNonLoss()
Dim nonloss As Integer
Dim LongestStreak As Integer
Dim Val
Dim streak As New Collection
nonloss = 0
LongestStreak = 0
Range("A1").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value <> "Lost" Then
nonloss = nonloss + 1
Else
streak.Add nonloss
nonloss = 0
End If
ActiveCell.Offset(1, 0).Select
Loop
For Each Val In streak
If Val > LongestStreak Then
LongestStreak = Val
End If
Next Val
Range("B1").Value = LongestStreak
End Sub
answered Dec 7 at 19:58
Brian
463
463
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1381646%2fcounting-duplicate-values-in-a-sequence-for-football-scores%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Do you want to
count
(as the title of your question indicates) or find the location (as you mention in the question)? Can you edit your question to show us the expected outcome?– cybernetic.nomad
Dec 7 at 15:19
If you just want a total count, then something like
=COUNTA(A1:A8)-COUNTIF(A1:A8,"Lost")
?– fixer1234
Dec 8 at 7:36