저는 Excel vba를 처음 사용합니다. 0과 1의 배열 (또는 엑셀 열)에서 연속 1의 양을 계산하는 현명한 방법을 알고 싶습니다.
다음 어레이를 고려하십시오.
A = [0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0];
다음 출력을 얻고 싶습니다.
Result = [4 4 1 5 5];
Matlab에서는 RunLength 함수로 쉽게 달성 할 수 있지만 vba에서는 비슷한 함수를 찾을 수 없습니다.
다음 MATLAB 코드를 수정하려고 시도했지만 찾기 기능을 올바르게 사용하여 원하는 것을 얻을 수 없습니다.
clc
clear all
A = [0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0];
B = A(2:end);
C = A(1:end-1) - B;
D = find(C~=0);
Result = [D(1) D(2:end) - D(1:end-1) length(A)-D(end)]
도움을 주셔서 감사합니다!
Sub test()
a = Array(0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0)
a = Filter(Split(Join(a, ""), 0), 1)
For i = 0 To UBound(a)
a(i) = Len(a(i))
Next
Debug.Print Join(a)
End Sub
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다