Posso usar COUNTIF em duas colunas para comparar valores?
-
21-08-2019 - |
Pergunta
Eu tenho duas colunas no Excel, como este:
A B
0.5 0.4
0.6 0.59
0.1 0.2
0.3 0.29
Eu quero contar quantos dos valores em B são menos do que os seus valores correspondentes em A. Neste caso, a resposta é 3.
Eu posso fazer isso adicionando uma coluna extra, B-A
e depois fazer COUNTIF(RANGE, "<0")
, mas eu estou querendo saber se há uma maneira de fazer isso sem adicionar uma coluna extra.
Sei que esta é à margem do que se pode considerar a programação, mas esperamos que seja apenas no lado direito da linha, em vez do lado errado.
Solução
Isto pode ser feito usando fórmulas de matriz do Excel. Tente fazer algo como isto:
=SUM(IF(A1:A5 > B1:B5, 1, 0))
O próprio muito importante parte, é a imprensa CTRL-SHIFT-ENTER
em vez de apenas ENTER
quando você terminar de introduzir a fórmula. Caso contrário, ele não vai entender você quiser tratar os dados como uma matriz.
Outras dicas
Não é uma solução, mas ainda envolve 2 células extra:. DCOUNT
O seguinte é um exemplo (inserção nas células especificadas no texto exacto após os dois pontos):
A1: Condição
A2: = B4> A4
A3: A
B3: B
A4: 700
B4: 5000
A5: 700
B5: 600
A6: 7000
B6: 6000
A7: 700
B7: 701
celular com fórmula contagem: = BDCONTAR (A3: B7, "B", A1: A2)
Na verdade isso é algo que eu seria fazer com um programa.
Criar uma macro para:
- coluna inserção C.
- gama conjunto ( "cn"). Valor para "= Bn-aN" para todos N em que a amplitude ( "uma"). Valor <> "".
- fazer o seu cálculo countif e enfiá-lo em uma célula ( não coluna C).
- Excluir coluna C.
Pode haver uma maneira mais fácil não-programação, mas eu não sei (e, em seguida, a sua pergunta seria fechado de qualquer forma).
O Shalom solução ARRAYFORMULA é realmente bom, mas eu não poderia fazê-lo funcionar com função AND incorporado IF, então eu tive que encontrar outra solução, e, finalmente, eu encontrei-o!
=ROWS(FILTER(A1:B4, A1:A4 > B1:B4))
Isto resolve o problema original na pergunta. Por outro lado, você pode usar várias condições, utilize o intervalo filtrado-se em outras funções, se necessário.
(Isto é uma solução Sheet Google, havn't tentou fazê-lo em Excel)
solução scraimer é ok. Mas para um divertimento,
Você também pode escrever uma macro como o seguinte e atribuir
=myOwnFunction(A1:A5,B1:B5)
esta abordagem pode ser estendido para qualquer outra função lógica, tais como A * B + C Function myOwnFunction(R1 As Range, S1 As Range)
Dim J As Integer
Dim Size As Integer
Dim myCount As Integer
Size = R1.Cells.Count
myCount = 0
For J = 1 To Size
If (R1.Cells(J) > S1.Cells(J)) Then
myCount = myCount + 1
End If
Next J
myOwnFunction = myCount
End Function