2017-03-09 1 views
0

저는 직장에서 프로젝트를 진행하고 있으며 Excel vba에 익숙하지 않습니다. 상사가 여러 학생 ID 번호가 포함 된 열이있는 워크 시트를 제공했으며 나머지 열은 설문 조사에 대한 답변입니다. 설문 조사는 객관식이었고 적용되는 모든 것을 선택했습니다.문구가 열에 나타나는 횟수 계산

객관식 질문의 질문 중 하나를 선택한 횟수를 찾는 방법을 찾아야합니다. 예를 들어 10 명의 학생이 있고 2 개의 답이있는 질문이 있고 5 명이 예를 선택하고 5 명이 아니오를 선택한 경우 궁극적으로 50 %가 대답을 선택했으며 50 %는 대답을 선택했습니다.

과거에 찍은 AP 수업을 모두 선택하는 것과 같이 객관식이 아닌 질문에 대해서는 똑같은 것을 알아야합니다. 이것이 질문이기 때문에 해당 열의 셀 중 일부가 비어 있습니다.

저는 해결책을 찾기 위해 열심히 노력했습니다. 지금까지 나는 countif를 여러 번 시도해 보았습니다. 하나의 해답이 특정 열에 나타났습니다 (많은 질문에 동일한 옵션이 있기 때문에 전체 워크 시트를 검색 할 수 없습니다). 이것에 대한 나의 큰 문제는 내가 countif의 범위를 작성하는 방법을 알아낼 수 없다는 것입니다. 왜냐하면 범위를 선언하는 열 번호가되어야하기 때문에 행은 데이터가있는 열의 마지막 행에 있어야하기 때문입니다. 조사가 진행되는 학생의 수는 매번 변경되므로 범위가 항상 동일하지는 않습니다. 따라서 범위를 A1과 같이 설정 한 열의 첫 번째 행으로 지정해야합니다. 그 열.

이 작업을 수행하는 방법에 대한 도움이나 도움이 될만한 자료는 인터넷을 통해 검색하고 vba에 대해 읽었습니다.

+0

을 위해, 당신은 VBA없이, 당신은 할 수 설정 (퀴즈에서 그대로) 문제를 가지고 Excel의 개요 시트 선호하는 답을 가지고있다. 그런 다음 sumifs (여러 기준을 허용하므로 질문이 참조와 동일하다는 것을 확인한 다음 예가 두 번째 기준입니다) 질문에 따라 countif로 나눕니다. 범위는 열 A 또는 B 등이 될 수 있으므로 행을 사용하여 정의 할 필요가 없습니다. – Cyril

답변

0

저는 엑셀 VBA에서 머물러 있고 그 답을 얻기 위해 기본 엑셀 공식을 사용하는 것이 좋습니다. VBA에 대한 필요성을 느끼는 이유가 있습니까?

아무튼 여기에 범위를 열 + 마지막 행으로 정의하는 표준 방법이 있습니다. 당신은 질문 목록이있는 경우이 예제는 A 열

Dim LastRow As Long 
LastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row 
+0

도움을 주셔서 감사합니다! 마지막 행을 얻는 방법을 알아낼 수 있었지만, 마지막 행 변수를 사용하여 범위를 작성하는 방법을 알지 못합니다. 그리고 제가 VBA와 함께 간 주된 이유는 상사가 제안했기 때문이며, 100 개 이상의 열과 600 개의 행이 있기 때문입니다. 새로운 워크 시트를 작성하고 일반 Excel 기능을 사용하는 것이 더 쉬울 것이라고 생각한다면 시도해보십시오. 나는 – Cocoberry2526

+0

를 본다. 100 개 또는 600 개 이상의 개별 질문이 없으면, 필자는 Cyril이 저의 위에 게시 한 내용 - sumifs 또는 다른 Excel 수식을 사용하여 답변을 얻는 것이 좋습니다. 올바른 수식을 정하면 얼마나 많은 학생들이 참여하는지는 중요하지 않습니다. 단지 약간의 평가를하는 범위를 바꿀뿐입니다. – dwirony

+0

필자가 제안한 일반 Excel 기능을 사용하기 시작했으며 VBA보다 확실히 잘 작동합니다. yalls 도움에 감사드립니다! – Cocoberry2526