
저는 Excel 수식을 사용하여 인접한 열의 비어 있지 않은 마지막 셀 값을 깔끔하게 결합하는 방법을 알고 싶습니다. 즉, 예상 값이 그림에서 녹색으로 강조 표시됩니다.
적용하여 한 열에서 비어 있지 않은 마지막 셀 값을 얻는 방법을 알고 있습니다.
=IFERROR(LOOKUP(2,1/(INDIRECT("A1:A"&ROW())<>""),INDIRECT("A1:A"&ROW())),"")
또한 다음을 적용하여 여러 값을 결합하는 방법도 알고 있습니다.
=TEXTJOIN("",TRUE,G4:L4)
내가 생각할 수 있는 가능한 방법은 다음과 같습니다.
- 소스 데이터를 2D 배열에서 1D 배열로 변환하고 배열 수식으로 반환합니다. 내 생각은 수식을 적용한 다음 비어 있지 않은 마지막 셀로 빈 셀 값을 채울 수 있다는 것입니다.
소스 수식 ={1,0,0;0,2,0;0,0,3;4,0,0;0,5,0;0,0,6} 수식 적용 후 배열 반환 ={1,0 ,0;1,2,0;1,2,3;4,0,0;4,5,0;4,5,6}
- 경우 배열을 사용하십시오.
- 열 대신 행별로 반복합니다.
그러나 나는 적절한 공식을 개발하지 못했습니다.
어떤 도움이라도 주시면 감사하겠습니다. 감사합니다.
캐릭터에 대한 솔루션은 링크에 명시되어 있습니다. 문자 케이스에 대한 솔루션
답변1
데이터가 표시된 대로 행의 4개 열 각각에 항목이 하나만 있는 경우 다음을 수행합니다.
E1: =A1
E2: =TEXTJOIN("",,IF(A2="", E1,""),A2:D2)
그리고 채워라
편집하다업데이트된 입력 및 출력 예제를 고려하면 다음과 같습니다.
이는 Windows Excel 2010+ 및 Excel 365(Windows 또는 Mac)에서 사용할 수 있는 파워 쿼리를 사용하여 수행할 수 있습니다.
파워 쿼리를 사용하려면
- 데이터 테이블에서 일부 셀을 선택하십시오.
Data => Get&Transform => from Table/Range
- PQ 편집기가 열리면:
Home => Advanced Editor
- 표를 기록해 두세요이름2호선에서
- 보이는 곳에 아래 M코드를 붙여넣으세요
- 2행의 테이블 이름을 원래 생성된 이름으로 다시 변경합니다.
- 댓글을 읽고
Applied Steps
알고리즘을 이해하기 위해 탐색해 보세요.
기본 알고리즘은 행을 채우는 것으로 구성됩니다. 열을 아래로 내린 다음 각 행의 개별 항목 목록을 반환합니다.
M코드
let
//Change next line to reflect your actual data source (table name)
Source = Excel.CurrentWorkbook(){[Name="Table14"]}[Content],
//set the data types to text
#"Changed Type" = Table.TransformColumnTypes(Source,
List.Transform(Table.ColumnNames(Source), each {_, type text})),
//Fill across all rows, then down all columns
#"Transposed Table" = Table.Transpose(#"Changed Type"),
fillRows = Table.FillDown(#"Transposed Table", Table.ColumnNames(#"Transposed Table")),
#"Transposed Table1" = Table.Transpose(fillRows),
fillCols = Table.FillDown(#"Transposed Table1", Table.ColumnNames(#"Transposed Table1")),
//Results column combines the Distinct entries only in each of the four columns
#"Added Custom" = Table.AddColumn(fillCols, "Output",
each Text.Combine(List.Distinct({[Column1],[Column2],[Column3],[Column4]}),""), type text),
//Remove uneeded columns
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Column1", "Column2", "Column3", "Column4"})
in
#"Removed Columns"