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

 dew (dewdrop)

추천:  2
파일:     숫자일련번호 매수 문의사항_Ans.xlsm (17.6KB) 조회:  1410
제목:   [RE]일련번호를 통하여 지출된 매수 계산 문의
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):

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

주차권 지급된 일련번호를 통하여 지급된 매수를 구하는 작업을 하고자 합니다.

예를 들어 아래와 같은 주차권 지출된 일련번호를 매수를 표시하는 방법입니다.

1시간할인권_no3841 ~ 3846  : 6
일일할인권_1059 ~ 1078 : 20
1시간할인권_no3847 : 1
1시간할인권_no3848 ~ 3853 : 6
일일할인권_1079  : 1071
 
그런데, 원하는 결과값이 표시되지 않고, #VALUE! 또는 전혀 관련이 없는 숫자(사례 1071 )이 표시됩니다.

제가 작업한 함수는 [=RIGHT(B3,4)-MID(B3,10,4)+1 ] 입니다.

첨부파일을 살펴봐주시고 함수입력에서 잘못된 부분을 도와주시면 고맙겠습니다.

감사합니다.


==============[박인호님 글에 대한 답변입니다]==============

사용자 정의 함수를 만들어 봤습니다..
첨부화일 참조하세요.

Function getResult(sText As String)
    Dim vText, vX, vY
    Dim iCount As Integer
    
    Application.Volatile
    
    sText = Replace(sText, " ", "")
    sText = Replace(sText, "_no", "_")
    sText = Replace(sText, ",no", "_")
    sText = Replace(sText, ",", "_")
    sText = Replace(sText, "~no", "~")
    sText = Mid(sText, InStr(sText, "_") + 1)
    
    vText = Split(sText, "_")
    
    iCount = 0
    For Each vX In vText
        If InStr(vX, "~") Then
            vY = Split(vX, "~")
            iCount = iCount + (vY(UBound(vY)) - vY(LBound(vY)) + 1)
        Else
            iCount = iCount + 1
        End If
    Next
    getResult = iCount
End Function

 
[불량 게시물 신고]  
        
  

작성일 : 2019-09-19(13:25)
최종수정일 : 2019-09-19(13:25)
 


 ◎ 관련글

  제 목   작성자   날짜
일련번호를 통하여 지출된 매수 계산 문의 박인호 2019-09-19
[RE]일련번호를 통하여 지출된 매수 계산 문의 dew 2019-09-19