'如何把多維數據轉換成一維數據?'

數據技巧 2019-08-02
"

原始表:

"

原始表:

如何把多維數據轉換成一維數據?

目標表:

"

原始表:

如何把多維數據轉換成一維數據?

目標表:

如何把多維數據轉換成一維數據?


項目和時間在行列的順序是互換的,這個肯定會涉及到轉置功能。

我們看2種解法:

(一) 通過函數分割後轉置合併。

我們看一個新函數Table.Partition。

Table.Partition(table as table, column as text, group as number, hash as function) as list

位置參數描述第1參數Table需要操作的表第2參數Text列名,文本形式第3參數Group分組的數量,數字格式第4參數Hash應用以獲取哈希值的函數

解釋:此作用主要是把表根據哈希值及制定分組數進行分割成單個table的列表。

1. 添加索引列並整除

"

原始表:

如何把多維數據轉換成一維數據?

目標表:

如何把多維數據轉換成一維數據?


項目和時間在行列的順序是互換的,這個肯定會涉及到轉置功能。

我們看2種解法:

(一) 通過函數分割後轉置合併。

我們看一個新函數Table.Partition。

Table.Partition(table as table, column as text, group as number, hash as function) as list

位置參數描述第1參數Table需要操作的表第2參數Text列名,文本形式第3參數Group分組的數量,數字格式第4參數Hash應用以獲取哈希值的函數

解釋:此作用主要是把表根據哈希值及制定分組數進行分割成單個table的列表。

1. 添加索引列並整除

如何把多維數據轉換成一維數據?


2. 轉換成3個獨立的表,使用到Table.Partition函數

Table.Partition(被用整數除的列,"索引",3, each _)
解釋:被用整數除的列代表之前的過程表; 索引代表根據內容進行的分組列名,需要文本格式,所以用""; 3代表分組的數量; each _代表之前的整個表。


"

原始表:

如何把多維數據轉換成一維數據?

目標表:

如何把多維數據轉換成一維數據?


項目和時間在行列的順序是互換的,這個肯定會涉及到轉置功能。

我們看2種解法:

(一) 通過函數分割後轉置合併。

我們看一個新函數Table.Partition。

Table.Partition(table as table, column as text, group as number, hash as function) as list

位置參數描述第1參數Table需要操作的表第2參數Text列名,文本形式第3參數Group分組的數量,數字格式第4參數Hash應用以獲取哈希值的函數

解釋:此作用主要是把表根據哈希值及制定分組數進行分割成單個table的列表。

1. 添加索引列並整除

如何把多維數據轉換成一維數據?


2. 轉換成3個獨立的表,使用到Table.Partition函數

Table.Partition(被用整數除的列,"索引",3, each _)
解釋:被用整數除的列代表之前的過程表; 索引代表根據內容進行的分組列名,需要文本格式,所以用""; 3代表分組的數量; each _代表之前的整個表。


如何把多維數據轉換成一維數據?


這樣我們得到3個獨立的表。因為返回的結果是list格式,所以我們還需要轉成Table格式。

3. 把這3個table裡面的行列進行轉置。

Table.AddColumn(轉換為表, "自定義", each 
Table.Transpose(
Table.RemoveColumns([Column1],"索引")
)
)

因為索引列我們已經不需要了,所以在轉置前把索引列給去除,然後在進行轉置。

"

原始表:

如何把多維數據轉換成一維數據?

目標表:

如何把多維數據轉換成一維數據?


項目和時間在行列的順序是互換的,這個肯定會涉及到轉置功能。

我們看2種解法:

(一) 通過函數分割後轉置合併。

我們看一個新函數Table.Partition。

Table.Partition(table as table, column as text, group as number, hash as function) as list

位置參數描述第1參數Table需要操作的表第2參數Text列名,文本形式第3參數Group分組的數量,數字格式第4參數Hash應用以獲取哈希值的函數

解釋:此作用主要是把表根據哈希值及制定分組數進行分割成單個table的列表。

1. 添加索引列並整除

如何把多維數據轉換成一維數據?


2. 轉換成3個獨立的表,使用到Table.Partition函數

Table.Partition(被用整數除的列,"索引",3, each _)
解釋:被用整數除的列代表之前的過程表; 索引代表根據內容進行的分組列名,需要文本格式,所以用""; 3代表分組的數量; each _代表之前的整個表。


如何把多維數據轉換成一維數據?


這樣我們得到3個獨立的表。因為返回的結果是list格式,所以我們還需要轉成Table格式。

3. 把這3個table裡面的行列進行轉置。

Table.AddColumn(轉換為表, "自定義", each 
Table.Transpose(
Table.RemoveColumns([Column1],"索引")
)
)

因為索引列我們已經不需要了,所以在轉置前把索引列給去除,然後在進行轉置。

如何把多維數據轉換成一維數據?


4. 對每一個表用表格裡的第一列的第一個值作為表的說明。

Table.AddColumn(刪除的其他列, "自定義.1", each [自定義][Column1]{0})


添加列並取自定義表的Column1列的第1行值作為表的說明。

"

原始表:

如何把多維數據轉換成一維數據?

目標表:

如何把多維數據轉換成一維數據?


項目和時間在行列的順序是互換的,這個肯定會涉及到轉置功能。

我們看2種解法:

(一) 通過函數分割後轉置合併。

我們看一個新函數Table.Partition。

Table.Partition(table as table, column as text, group as number, hash as function) as list

位置參數描述第1參數Table需要操作的表第2參數Text列名,文本形式第3參數Group分組的數量,數字格式第4參數Hash應用以獲取哈希值的函數

解釋:此作用主要是把表根據哈希值及制定分組數進行分割成單個table的列表。

1. 添加索引列並整除

如何把多維數據轉換成一維數據?


2. 轉換成3個獨立的表,使用到Table.Partition函數

Table.Partition(被用整數除的列,"索引",3, each _)
解釋:被用整數除的列代表之前的過程表; 索引代表根據內容進行的分組列名,需要文本格式,所以用""; 3代表分組的數量; each _代表之前的整個表。


如何把多維數據轉換成一維數據?


這樣我們得到3個獨立的表。因為返回的結果是list格式,所以我們還需要轉成Table格式。

3. 把這3個table裡面的行列進行轉置。

Table.AddColumn(轉換為表, "自定義", each 
Table.Transpose(
Table.RemoveColumns([Column1],"索引")
)
)

因為索引列我們已經不需要了,所以在轉置前把索引列給去除,然後在進行轉置。

如何把多維數據轉換成一維數據?


4. 對每一個表用表格裡的第一列的第一個值作為表的說明。

Table.AddColumn(刪除的其他列, "自定義.1", each [自定義][Column1]{0})


添加列並取自定義表的Column1列的第1行值作為表的說明。

如何把多維數據轉換成一維數據?


5. 最後展開後篩選,調整,重命名標題即可。

(二) 使用自定義函數

之前我們有做過一個關於多列數據組合的自定義函數。

Power Query中如何把多列數據合併?

Power Query中如何把多列數據合併?升級篇

"

原始表:

如何把多維數據轉換成一維數據?

目標表:

如何把多維數據轉換成一維數據?


項目和時間在行列的順序是互換的,這個肯定會涉及到轉置功能。

我們看2種解法:

(一) 通過函數分割後轉置合併。

我們看一個新函數Table.Partition。

Table.Partition(table as table, column as text, group as number, hash as function) as list

位置參數描述第1參數Table需要操作的表第2參數Text列名,文本形式第3參數Group分組的數量,數字格式第4參數Hash應用以獲取哈希值的函數

解釋:此作用主要是把表根據哈希值及制定分組數進行分割成單個table的列表。

1. 添加索引列並整除

如何把多維數據轉換成一維數據?


2. 轉換成3個獨立的表,使用到Table.Partition函數

Table.Partition(被用整數除的列,"索引",3, each _)
解釋:被用整數除的列代表之前的過程表; 索引代表根據內容進行的分組列名,需要文本格式,所以用""; 3代表分組的數量; each _代表之前的整個表。


如何把多維數據轉換成一維數據?


這樣我們得到3個獨立的表。因為返回的結果是list格式,所以我們還需要轉成Table格式。

3. 把這3個table裡面的行列進行轉置。

Table.AddColumn(轉換為表, "自定義", each 
Table.Transpose(
Table.RemoveColumns([Column1],"索引")
)
)

因為索引列我們已經不需要了,所以在轉置前把索引列給去除,然後在進行轉置。

如何把多維數據轉換成一維數據?


4. 對每一個表用表格裡的第一列的第一個值作為表的說明。

Table.AddColumn(刪除的其他列, "自定義.1", each [自定義][Column1]{0})


添加列並取自定義表的Column1列的第1行值作為表的說明。

如何把多維數據轉換成一維數據?


5. 最後展開後篩選,調整,重命名標題即可。

(二) 使用自定義函數

之前我們有做過一個關於多列數據組合的自定義函數。

Power Query中如何把多列數據合併?

Power Query中如何把多列數據合併?升級篇

如何把多維數據轉換成一維數據?


1. 先進行轉置

"

原始表:

如何把多維數據轉換成一維數據?

目標表:

如何把多維數據轉換成一維數據?


項目和時間在行列的順序是互換的,這個肯定會涉及到轉置功能。

我們看2種解法:

(一) 通過函數分割後轉置合併。

我們看一個新函數Table.Partition。

Table.Partition(table as table, column as text, group as number, hash as function) as list

位置參數描述第1參數Table需要操作的表第2參數Text列名,文本形式第3參數Group分組的數量,數字格式第4參數Hash應用以獲取哈希值的函數

解釋:此作用主要是把表根據哈希值及制定分組數進行分割成單個table的列表。

1. 添加索引列並整除

如何把多維數據轉換成一維數據?


2. 轉換成3個獨立的表,使用到Table.Partition函數

Table.Partition(被用整數除的列,"索引",3, each _)
解釋:被用整數除的列代表之前的過程表; 索引代表根據內容進行的分組列名,需要文本格式,所以用""; 3代表分組的數量; each _代表之前的整個表。


如何把多維數據轉換成一維數據?


這樣我們得到3個獨立的表。因為返回的結果是list格式,所以我們還需要轉成Table格式。

3. 把這3個table裡面的行列進行轉置。

Table.AddColumn(轉換為表, "自定義", each 
Table.Transpose(
Table.RemoveColumns([Column1],"索引")
)
)

因為索引列我們已經不需要了,所以在轉置前把索引列給去除,然後在進行轉置。

如何把多維數據轉換成一維數據?


4. 對每一個表用表格裡的第一列的第一個值作為表的說明。

Table.AddColumn(刪除的其他列, "自定義.1", each [自定義][Column1]{0})


添加列並取自定義表的Column1列的第1行值作為表的說明。

如何把多維數據轉換成一維數據?


5. 最後展開後篩選,調整,重命名標題即可。

(二) 使用自定義函數

之前我們有做過一個關於多列數據組合的自定義函數。

Power Query中如何把多列數據合併?

Power Query中如何把多列數據合併?升級篇

如何把多維數據轉換成一維數據?


1. 先進行轉置

如何把多維數據轉換成一維數據?


2. 使用自定義函數進行多列合併

批量多列合併(轉置表,Table.ColumnCount(轉置表)/7,7,0)

解釋:

第1參數代表需要處理的表,轉置表代表上個過程的表

第2參數代表是循環次數,這裡實際轉換是3,代表3組數據進行合併,我們這裡使用了函數可以相對自動化的獲取循環次數。

第3參數是多少列作為一組進行轉換,這裡是7個列進行。

第4參數是代表是否需要固定列,這不存在固定列,所以用0代表。


"

原始表:

如何把多維數據轉換成一維數據?

目標表:

如何把多維數據轉換成一維數據?


項目和時間在行列的順序是互換的,這個肯定會涉及到轉置功能。

我們看2種解法:

(一) 通過函數分割後轉置合併。

我們看一個新函數Table.Partition。

Table.Partition(table as table, column as text, group as number, hash as function) as list

位置參數描述第1參數Table需要操作的表第2參數Text列名,文本形式第3參數Group分組的數量,數字格式第4參數Hash應用以獲取哈希值的函數

解釋:此作用主要是把表根據哈希值及制定分組數進行分割成單個table的列表。

1. 添加索引列並整除

如何把多維數據轉換成一維數據?


2. 轉換成3個獨立的表,使用到Table.Partition函數

Table.Partition(被用整數除的列,"索引",3, each _)
解釋:被用整數除的列代表之前的過程表; 索引代表根據內容進行的分組列名,需要文本格式,所以用""; 3代表分組的數量; each _代表之前的整個表。


如何把多維數據轉換成一維數據?


這樣我們得到3個獨立的表。因為返回的結果是list格式,所以我們還需要轉成Table格式。

3. 把這3個table裡面的行列進行轉置。

Table.AddColumn(轉換為表, "自定義", each 
Table.Transpose(
Table.RemoveColumns([Column1],"索引")
)
)

因為索引列我們已經不需要了,所以在轉置前把索引列給去除,然後在進行轉置。

如何把多維數據轉換成一維數據?


4. 對每一個表用表格裡的第一列的第一個值作為表的說明。

Table.AddColumn(刪除的其他列, "自定義.1", each [自定義][Column1]{0})


添加列並取自定義表的Column1列的第1行值作為表的說明。

如何把多維數據轉換成一維數據?


5. 最後展開後篩選,調整,重命名標題即可。

(二) 使用自定義函數

之前我們有做過一個關於多列數據組合的自定義函數。

Power Query中如何把多列數據合併?

Power Query中如何把多列數據合併?升級篇

如何把多維數據轉換成一維數據?


1. 先進行轉置

如何把多維數據轉換成一維數據?


2. 使用自定義函數進行多列合併

批量多列合併(轉置表,Table.ColumnCount(轉置表)/7,7,0)

解釋:

第1參數代表需要處理的表,轉置表代表上個過程的表

第2參數代表是循環次數,這裡實際轉換是3,代表3組數據進行合併,我們這裡使用了函數可以相對自動化的獲取循環次數。

第3參數是多少列作為一組進行轉換,這裡是7個列進行。

第4參數是代表是否需要固定列,這不存在固定列,所以用0代表。


如何把多維數據轉換成一維數據?


3. 添加自定義列標註數據歸屬

try if Text.Contains([Column1],"班") then [Column1] else null otherwise null

解釋:

因為歸屬的字段裡面都有個"班"字,所以以這個為條件進行判斷,但是第1列當中既有文本格式,又有日期格式,所以直接使用文本函數,在判斷日期的時候會出錯,所以這裡使用了try...otherwise...函數來進行處理。


"

原始表:

如何把多維數據轉換成一維數據?

目標表:

如何把多維數據轉換成一維數據?


項目和時間在行列的順序是互換的,這個肯定會涉及到轉置功能。

我們看2種解法:

(一) 通過函數分割後轉置合併。

我們看一個新函數Table.Partition。

Table.Partition(table as table, column as text, group as number, hash as function) as list

位置參數描述第1參數Table需要操作的表第2參數Text列名,文本形式第3參數Group分組的數量,數字格式第4參數Hash應用以獲取哈希值的函數

解釋:此作用主要是把表根據哈希值及制定分組數進行分割成單個table的列表。

1. 添加索引列並整除

如何把多維數據轉換成一維數據?


2. 轉換成3個獨立的表,使用到Table.Partition函數

Table.Partition(被用整數除的列,"索引",3, each _)
解釋:被用整數除的列代表之前的過程表; 索引代表根據內容進行的分組列名,需要文本格式,所以用""; 3代表分組的數量; each _代表之前的整個表。


如何把多維數據轉換成一維數據?


這樣我們得到3個獨立的表。因為返回的結果是list格式,所以我們還需要轉成Table格式。

3. 把這3個table裡面的行列進行轉置。

Table.AddColumn(轉換為表, "自定義", each 
Table.Transpose(
Table.RemoveColumns([Column1],"索引")
)
)

因為索引列我們已經不需要了,所以在轉置前把索引列給去除,然後在進行轉置。

如何把多維數據轉換成一維數據?


4. 對每一個表用表格裡的第一列的第一個值作為表的說明。

Table.AddColumn(刪除的其他列, "自定義.1", each [自定義][Column1]{0})


添加列並取自定義表的Column1列的第1行值作為表的說明。

如何把多維數據轉換成一維數據?


5. 最後展開後篩選,調整,重命名標題即可。

(二) 使用自定義函數

之前我們有做過一個關於多列數據組合的自定義函數。

Power Query中如何把多列數據合併?

Power Query中如何把多列數據合併?升級篇

如何把多維數據轉換成一維數據?


1. 先進行轉置

如何把多維數據轉換成一維數據?


2. 使用自定義函數進行多列合併

批量多列合併(轉置表,Table.ColumnCount(轉置表)/7,7,0)

解釋:

第1參數代表需要處理的表,轉置表代表上個過程的表

第2參數代表是循環次數,這裡實際轉換是3,代表3組數據進行合併,我們這裡使用了函數可以相對自動化的獲取循環次數。

第3參數是多少列作為一組進行轉換,這裡是7個列進行。

第4參數是代表是否需要固定列,這不存在固定列,所以用0代表。


如何把多維數據轉換成一維數據?


3. 添加自定義列標註數據歸屬

try if Text.Contains([Column1],"班") then [Column1] else null otherwise null

解釋:

因為歸屬的字段裡面都有個"班"字,所以以這個為條件進行判斷,但是第1列當中既有文本格式,又有日期格式,所以直接使用文本函數,在判斷日期的時候會出錯,所以這裡使用了try...otherwise...函數來進行處理。


如何把多維數據轉換成一維數據?


4. 最後通過提升標題,篩選數據,重命名列名等整理數據即可

"

相關推薦

推薦中...