콘텐츠로 이동

목록/배열 셀 → 텍스트

위치: 리본 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개로 취급합니다.

동작 절차

  1. 파일 읽기 — 현재 통합문서의 사본(SaveCopyAs)을 임시 폴더에 풀어 richData(목록/배열 리치 값)를 읽습니다. 저장하지 않은 편집도 사본에 담기므로 그대로 반영됩니다.
  2. 대상 확인 — 목록 셀이 없으면 안내 후 종료합니다.
  3. 확인 창 — 값 목록 셀 N개를 변환한다고 알립니다. 수식 결과인 목록 셀 M개가 있으면 "그것도 텍스트로 고정할까요?"를 묻습니다: 예 = 모두 / 아니요 = 값 셀만 / 취소. (수식 목록 셀은 _xlfn._ARRAY(...)로 저장되어 구버전에서는 어차피 #NAME?입니다. 아니요를 골랐는데 값 셀이 없으면 종료합니다.)
  4. 저장 게이트 + 백업 — 저장되지 않았으면 저장 여부를 묻고(거절/취소 시 중단), 적용 직전에 백업 파일이 자동 저장됩니다(통합문서와 같은 폴더, 원본이름_egbak_<시각>.<확장자> — 구버전 호환 적용과 같은 절차). 백업 실패 시 진행하지 않습니다.
  5. 적용 — 아래 규칙대로 각 목록 셀을 텍스트(또는 값)로 바꿉니다.
  6. 완료 창 — 변환한 셀 수, 건너뛴 셀 수(있을 때), 백업 파일 경로를 안내합니다.

적용 규칙

대상 처리
값 목록 셀 현재 값이 오류(#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: 수식으로도 확인할 수 있습니다.