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.

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top