나눔터  
  HOME > 나눔터 > 묻고답하기 > 액세스
액세스
액세스에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 황동준 (bogri2000)

추천:  2
파일:     평균값[2].accdb (900KB) 조회:  1360
제목:   [RE]테이블에?평균값?수식입력하기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 액세스 버전(95,97,2000,xp,2003,2007): 2019

* 아래줄에 질문을 작성하세요 >> 

엑셀로 관리하던 볼링점수를 엑세스로 해보려고 시작한 초보입니다.
평균값을 내려고 하는데, 
행기본값을 없음으로하면 평균계산이 안되고,
기본값을 0으로 하면, 빈행이있을때 잘못된값이 나오네요....
평균: Avg([1game][2game][3game][4game]) 
이렇게해도 안되는데, 
이곳에 검색을해도 안나오기에  답답함에 여쭤봅니다.



==============[아띠님 글에 대한 답변입니다]==============


값이 있는 필드 개수를 계산하여 총점에서 나누기 하시면 됩니다.



====쿼리에서

게임수: IIf(Nz([1game])>=1,1,0)+IIf(Nz([2game])>=1,1,0)+IIf(Nz([3game])>=1,1,0)+IIf(Nz([4game])>=1,1,0)

총점: (Nz([1game])+Nz([2game])+Nz([3game])+Nz([4game]))

평균: (Nz([1game])+Nz([2game])+Nz([3game])+Nz([4game]))/(IIf(Nz([1game])>=1,1,0)+IIf(Nz([2game])>=1,1,0)+IIf(Nz([3game])>=1,1,0)+IIf(Nz([4game])>=1,1,0))

필드가 숫자이고 기본값이 0이 필수로 들어간다면 nz함수는 없어도 됩니다.


====폼에서 
-테이블의 총점 평균 필드는 숫자로 바꾸셔야 합니다.

Private Sub 총점_GotFocus()
    Dim i As Integer
    Dim j As Integer
    Me.총점 = Nz(Me.[1game]) + Nz(Me.[2game]) + Nz(Me.[3game]) + Nz(Me.[4game])
    
    j = 0
    For i = 1 To 4
        If Me(i & "game") > 0 Then
            j = j + 1
        End If
    Next i
    Me.평균 = (Nz(Me.[1game]) + Nz(Me.[2game]) + Nz(Me.[3game]) + Nz(Me.[4game])) / j
End Sub




====테이블에서

-테이블 계산필드는 nz 함수가 안됩니다. 따라서 각 게임 점수 필드의 기본값은 0으로 설정하셔서 빈칸이 되지 않도록 하신다음 아래식으로 하시면 됩니다.

([1game]+[2game]+[3game]+[4game])/(IIf([1game]>0,1,0)+IIf([2game]>0,1,0)+IIf([3game]>0,1,0)+IIf([4game]>0,1,0))

그러나 특별한 경우가아니면 테이블에서 입력,계산,출력 같은 작업은 하지 않습니다.
 
[불량 게시물 신고]  
아띠친절하고 꼼꼼한 답변에 감사드립니다 ^^;;
엑세스는 다들 어렵다고하고들 하는데,
복잡한 수식을 보니 서둘지말고 천천히 해야겠네요........
막막한 상황에서 길을 알려주심에 다시한번 감사드립니다~
07-07 (17:15)
삭제 ■신고
        
  

작성일 : 2020-07-06(09:17)
최종수정일 : 2020-07-06(09:17)
 


 ◎ 관련글

  제 목   작성자   날짜
테이블에 평균값 수식입력하기 아띠 2020-07-05
[RE]테이블에?평균값?수식입력하기 황동준 2020-07-06