목록/배열 셀 → 텍스트¶
위치: 리본 EGTools 탭 → EGTools 그룹 → 스플릿 버튼 드롭다운 메뉴
Microsoft 365 베타(버전 2610, 빌드 20520 이상)의 셀 내 목록/배열(Lists in Cells)은
리치 값으로 저장되기 때문에, 구버전 Excel(일반 Microsoft 365 포함)에서는 #UNKNOWN!
(Excel 2016은 #VALUE!)로만 보이고 항목을 읽을 수 없습니다. 이 명령은 저장된 파일의
richData를 직접 읽어 각 목록 셀을 아래의 텍스트 표기로 바꿔 씁니다. 변환된 텍스트는
호환 함수 HAS · HASANY ·
HASALL · FLATTEN으로
평가할 수 있습니다(Microsoft 365에서는 네이티브와 공존하도록 EG.HAS처럼 EG. 접두로 등록됩니다).
텍스트 표기¶
| 목록 형태 | 표기 | 예 |
|---|---|---|
| 1열 목록(중첩 없음) | 콤마 구분 — ARRAYTOTEXT 간결 형식과 동일. 항목에 , ; { } "나 앞뒤 공백이 있거나 숫자/TRUE/오류로 읽힐 텍스트는 "…"로 인용(내부 "는 "") |
Mon, Tue, Wed / "1,000", "TRUE" |
| 2D·중첩 배열 | 배열상수 형식 — ARRAYTOTEXT 엄격 형식(텍스트 모두 인용, 공백 없음, ; 행·, 열)의 중괄호 확장 |
{"a",1;"b",2} / {"a",{"b","c"},"d"} |
| 항목이 숫자/논리 하나뿐인 목록 | 텍스트가 아니라 숫자/논리 값 자체로 씁니다 | 3, TRUE |
- 배열상수 형식의 텍스트는 베타 Excel에서 앞에
=를 붙이면 그대로 셀 내 배열 수식이 됩니다. - HAS 계열 함수는 두 표기를 모두 읽습니다. 콤마로 나뉜 목록이나
{…}안의 항목은 숫자 모양 → 숫자, TRUE/FALSE → 논리,#N/A등 오류 이름 → 오류로 읽히고, 콤마·중괄호가 없는 단일 텍스트는 분류하지 않고 텍스트 그대로 항목 1개가 됩니다. 따옴표가 닫히지 않는 등 파싱할 수 없으면 오류 없이 전체를 항목 1개로 취급합니다.
동작 절차¶
- 파일 읽기 — 현재 통합문서의 사본(SaveCopyAs)을 임시 폴더에 풀어 richData(목록/배열 리치 값)를 읽습니다. 저장하지 않은 편집도 사본에 담기므로 그대로 반영됩니다.
- 대상 확인 — 목록 셀이 없으면 안내 후 종료합니다.
- 확인 창 — 값 목록 셀 N개를 변환한다고 알립니다. 수식 결과인 목록 셀 M개가 있으면
"그것도 텍스트로 고정할까요?"를 묻습니다: 예 = 모두 / 아니요 = 값 셀만 / 취소.
(수식 목록 셀은
_xlfn._ARRAY(...)로 저장되어 구버전에서는 어차피#NAME?입니다. 아니요를 골랐는데 값 셀이 없으면 종료합니다.) - 저장 게이트 + 백업 — 저장되지 않았으면 저장 여부를 묻고(거절/취소 시 중단), 적용 직전에
백업 파일이 자동 저장됩니다(통합문서와 같은 폴더,
원본이름_egbak_<시각>.<확장자>— 구버전 호환 적용과 같은 절차). 백업 실패 시 진행하지 않습니다. - 적용 — 아래 규칙대로 각 목록 셀을 텍스트(또는 값)로 바꿉니다.
- 완료 창 — 변환한 셀 수, 건너뛴 셀 수(있을 때), 백업 파일 경로를 안내합니다.
적용 규칙¶
| 대상 | 처리 |
|---|---|
| 값 목록 셀 | 현재 값이 오류(#UNKNOWN!/#VALUE!)인 셀만 텍스트로 바꿉니다. 저장 뒤 편집되어 오류가 아닌 셀은 건너뜁니다 |
| 수식 목록 셀 | 확인 창에서 예를 고른 경우만 변환합니다. 원본 수식은 셀 메모에 EgListRemoved: <수식>으로 보존됩니다(기존 메모가 있으면 뒤에 이어 붙임) |
| CSE 배열 영역 | 영역 전체를 값으로 고정한 뒤 해당 셀에 텍스트를 씁니다 |
| 수식/숫자/TRUE로 자동 해석될 텍스트 | 셀 서식을 텍스트(@)로 바꾼 뒤 입력합니다 |
| 항목 하나뿐인 숫자/논리 목록 | 텍스트가 아니라 숫자/논리 값 자체로 씁니다 |
_array가 아닌 리치 값(셀 내 그림, 연결된 데이터 형식 등) |
대상이 아닙니다 |
참고¶
- 베타 Excel에서도 같은 명령이 동작하므로, 다른 사람과 공유하기 전에 미리 변환하는 용도로도 씁니다.
- 변환 뒤에는 HAS / HASANY / HASALL / FLATTEN으로 같은 결과를 얻습니다. 문서가 베타 Excel에서
=HAS(...)같은 수식으로 저장됐다면 구버전 호환 적용이_xlfn.HAS·_xlfn._xlws.FLATTEN토큰을 EGTools 호환 함수명으로 바꿔 줍니다. - 권장 실행 순서: ① 목록/배열 셀 → 텍스트, ② 구버전 호환 적용(Microsoft 365 비베타에서는
내장 함수로 복원). 이 순서를 지켜야
=HAS(...)같은 수식이#VALUE!가 아니라 올바른 결과를 냅니다. 수식 결과인 목록 셀을 아니요로 남겨 두었다면 그_xlfn._ARRAY(...)수식은 구버전 호환 적용이ARRAYTOTEXT(…,1)로 바꿔 줍니다. - 원복하려면 백업 파일을 여세요. 수식 셀은 메모의
EgListRemoved:수식으로도 확인할 수 있습니다.