나는 다음과 같은 엑셀 테이블이 있습니다네트워크 흐름 데이터베이스
열 A, B와 D는 (데이터) 제공됩니다. 다른 열이 계산됩니다. 각 열의 수식이 아래에 나와 있습니다.
을 감안할 때 열 A, B와 D, 전원 쿼리로 생성이 테이블을 만들 수 있습니까?
나는 다음과 같은 엑셀 테이블이 있습니다네트워크 흐름 데이터베이스
열 A, B와 D는 (데이터) 제공됩니다. 다른 열이 계산됩니다. 각 열의 수식이 아래에 나와 있습니다.
을 감안할 때 열 A, B와 D, 전원 쿼리로 생성이 테이블을 만들 수 있습니까?
루핑 메커니즘 중 하나 인 List.Generate, List.Accumulate 또는 Recursive 기능을 사용하여 수행 할 수 있습니다.
반복 횟수가 알려져 있으므로 List.Accumulate를 선호합니다.
아래 쿼리에서 List.Accumulate는 원본에 추가해야하는 필드가있는 레코드 목록을 작성합니다.
결과 테이블은 열 값 목록과 새 테이블 유형을 통해 생성됩니다.
let
Source = Table1,
IncomingSupplies = List.Buffer(Source[Incoming Supply]),
GenerateFlow =
List.Accumulate(
List.Skip(IncomingSupplies),
{[Beginning On Hand Inventory = Source[Starting Inventory]{0},
Shipments = 0.5 * #"Beginning On Hand Inventory",
Ending On Hand = #"Beginning On Hand Inventory" + IncomingSupplies{0} - Shipments]},
(Result,Supply) =>
Result &
{[Beginning On Hand Inventory = List.Last(Result)[Ending On Hand],
Shipments = 0.5 * #"Beginning On Hand Inventory",
Ending On Hand = #"Beginning On Hand Inventory" + Supply - Shipments]}),
NewTableType = Value.Type(Table.AddColumn(Source,"Records",each [], type[])),
CombineSourceAndFlow = Table.FromColumns(Table.ToColumns(Source)&{GenerateFlow},NewTableType),
ExpandFlow = Table.ExpandRecordColumn(CombineSourceAndFlow, "Records", {"Beginning On Hand Inventory", "Shipments", "Ending On Hand"}),
Typed = Table.TransformColumnTypes(ExpandFlow,{{"Beginning On Hand Inventory", Int64.Type}, {"Shipments", Int64.Type}, {"Ending On Hand", Int64.Type}}),
Reordered = Table.ReorderColumns(Typed,{"Month", "Starting Inventory", "Beginning On Hand Inventory", "Incoming Supply", "Shipments", "Ending On Hand"})
in
Reordered
솔루션을 제공해 주셔서 감사합니다. 위대한 작품! 이 비늘이 있는지 확인하십시오. – mnoPQ
이것은 원형 정의와 같습니다. 열 F는 열 F를 참조하는 열 C의 관점에서 정의됩니다. –