목록분류 전체보기 (563)
rand(life)
A열과 같이 같은 문자열이 반복되어 나오고 있을때, 가장 많이 나오는 문자열이 무엇인지, 또는 두 번째로 많이 나오는 문자열이 무엇인지를 알 수 있는 함수입니다.=INDEX(A1:A6,MATCH(LARGE(FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0)),C1),FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0)),0))배열함수이므로, Ctrl-Shift-Enter해야합니다. 길어서 복잡해보이지만, FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0)) 이 부분이 반복되어서 그런것입니다. 이 부분이 하는 역할은, A열의 각 문자열이 나오는 횟수를 배열로 만드는 것입니다. MATCH..
같은 제목으로 여러번 포스트를 올린적이 있습니다.2010/06/20 - [컴퓨터/엑셀] - [엑셀, VBA] 같은 조건의 문자열 찾아 합치기2011/06/30 - [컴퓨터/엑셀] - [엑셀Q&A,VBA] 같은 조건의 문자열 찾아 합치기 22015/10/30 - [컴퓨터/엑셀] - [엑셀Q&A,VBA] 같은 조건의 문자열 찾아 합치기 32017/03/18 - [컴퓨터/엑셀] - [vba] 같은 조건의 문자열 찾아 합치기 (매크로버전)2017/04/03 - [컴퓨터/엑셀] - [엑셀Q&A,VBA] 같은 조건의 문자열 찾아 합치기 4모두 다 VBA(매크로)를 사용한 것이었습니다. (사용자 정의함수도 결국은 VBA를 이용한 것이므로) 그런데, 엑셀 2016버전에서 새로 나온 함수를 사용하면 VBA없이도 가능하게..
now 현재의 날짜와 시간 (ex: 2017-07-16 오후 3:17:23)date 현재의 날짜만 (ex: 2017-07-16) time 현재의 시간만 (ex: 오후 3:17:59 )weekday(날짜, 옵션) 요일 옵션: 주의 첫요일 설정한다. 상수: 1 일요일, 2 월요일 3, 화요일... 결과값: 1~7의 숫자로 나옴예를 들어, weekday(date, vbmonday) 라고하면 오늘 날짜가 무슨 요일인지를 월요일을 1로 해서 숫자로 알려준다. 이 글을 쓰는 날은 일요일ㅇ이므로, 7이 나온다.만약, weekday(date, vbsunday)라고 했다면 1이 나온다. DatePart (옵션, 날짜/시간): 날짜.시간에서 필요한 부분 추출 옵션: yyyy 년도, q 분기, m 달, y 년 중 몇번째 날..
중복없이 값을 배열에 넣기 위해 그동안 컬렉션을 사용했었는데, 많이 불편했다. 그런데 이번에 Scripting.Dictionary를 사용하는 방법을 알게 되었다. 원문은 여기 그리고 여기번역문은 여기이다. 상당히 편리하다. 원문의 설명에 따르면 Scripting.Dictionary를 사용하기 위해서는 VB편집기에서 설정을 해주어야한다고 한다. VB편집기 상단 - 도구 - 참조에서Microsoft Scripting Runtime을 체크하면 된다그런데 엑셀2016 기준으로 위의 체크를 하지 않아도 작동한다. 왜 그런지는 좀 더 알아봐야 할 듯 해당 기능을 이용한 매크로 예제이다. exists메서드가 유용하게 사용된 경우. 기본적인 몇가지 코드. 위의 링크에서는 복사가 안되어서...
year grade 2014 A 2015 B 2016 D 2017 A 위와 같은 표를 위의 그림처럼 차트로 표현하고 싶을때가 있다. 그런데 엑셀에서 Y축은 숫자만 가능하지, 저렇게 문자로는 가능하지 않다. 그래서 굳이 저렇게 표현하려면 약간의 편법을 써야한다.외국의 한 사이트에서 가져온 방법이다. (역시 덕중에 제일은 양덕이라고, 엑셀의 기상천외한 답들은 대부분 양넘들이다) year Number grade 2014 10 A 2015 20 B 2016 40 D 2017 10 A 우선, 위와 같이 문자에 대응하는 숫자를 넣는다. 차트를 만들었을때 문자등급 사이의 간격을 생각하여 적당한 숫자로 넣는다. 수작업으로 넣어도 되고, 데이터가 많다면 따로 테이블을 만들어 VLOOKUP을 사용해서 수식으로 넣을 수도 ..
위 그림 A:C열의 데이터에서 E1의 조건에 해당하는 값을 F:H에 불러오는 수식이다. =IFERROR(INDEX($B$2:$B$9,1/LARGE(INDEX((ISNUMBER(FIND($E$2,$C$2:$C$9)))/ROW($C$2:$C$9),),ROW(C4))-1),"") 이 수식에 대한 설명은 어느 분이 해놓으신 수식 설명으로 대신한다. 완전히 똑같은 수식은 아니지만, 대략적인 원리는 같다. 설명이 깔끔하고 이해하기 쉽게 되어있다.
cmd 명령의 결과를 텍스트파일로 받기아래는 ping의 결과 Option Explicit Sub checkping() Dim cmd As String Dim res, goWSH, aRet Dim s As String, e As String Set goWSH = CreateObject("WScript.Shell") cmd = "ping -n 1 " & [a1] Set aRet = goWSH.exec(cmd) res = CStr(aRet.stdout.readall()) s = InStr(res, "(") e = InStr(res, "),")[b1] = Mid(res, s + 1, e - s - 1)End Sub
지식인에서 답변을 달기 위해 코딩을 하다가 문득 생긴 의문이다. 범위대 범위를 한번에 비교할 수 있는 방법은 없을까?그래서 지식인에 질문을 했다. A1:C1 범위와 A2:C2 범위의 값을 각각 비교하고 싶어서(즉, A1과 A2를 비교, B1과 B2를 비교, C1과 C2를 비교)if range("A1").resize(,3) = range("A2").resize(,3) then 이렇게 했더니 오류 메시지가 뜨네요.If [a1] = [a2] and [b1] = [b2] and [c1] = [c2] then이렇게 하나씩 비교하는 수 밖에 없나요?범위대 범위로 한번에 비교하는 방법이 있는지 궁금합니다. 두 개의 답변이 달렸다. 그것도 지식인 랭킹 1,2위를 하시는 분들께서! 한분의 답은 For ~ Next 순환문..