Excelファイルを指定した列の値で分割するPower Automate Desktopフローの例
この説明は、ChatGPTで作成しています。
このフローでは、Power Automate Desktopを使用して、指定したExcelファイルを特定の列を基準に分割し、複数のファイルとして保存します。
フローの概要
ファイル選択と基準列の指定
初めに、分割したいExcelファイルを選択します。
その後、基準となる列番号を指定し、この列を基準にExcelデータを分割していきます。
Excelファイルの読み込み
指定したExcelファイルを開き、最初の行の見出し情報と全データを読み込みます。
基準列の値でデータを分割
基準列に基づき、重複を除いたリストを作成し、それぞれの値ごとにデータを分けていきます。
新しいファイルとして保存
分割されたデータをExcelファイルとして新規に保存します。このとき、保存日時をファイル名に含めることで、いつ保存したデータなのかがわかるようにしています。
このフローを実行することで、大きなExcelデータを効率よく分割できるようになります。たとえば、部門ごとや担当者ごとに分けたデータを別ファイルとして保存したいときに役立ちます。
補足
ご利用の際は、フローの一番下から3つめのアクション「Excelを閉じる」をダブルクリックして、「ドキュメントパス」の入力ボックスにある「●格納したいフォルダのパスを入れる●」部分を、ご自身が分割後のファイルを保存したいフォルダのパスと入れ替えてください。動画内でも、この部分の説明をしています。
デスクトップ フローの作成 - Power Automate | Microsoft Learn
Power Automate Desktopアイコンは、Icons8が作成したものです
この記事のYouTube動画はこちら
Power Automate Desktopフローのテキストをコピペして自分のPCで利用する方法
@@statistics_TextBlock: '4'
@@statistics_Action_Submit: '2'
Display.ShowCustomDialog CardTemplateJson: '''{
\"type\": \"AdaptiveCard\",
\"version\": \"1.4\",
\"id\": \"AdaptiveCard\",
\"body\": [
{
\"type\": \"TextBlock\",
\"id\": \"Text block\",
\"text\": \"${Text_block_Text}\"
},
{
\"type\": \"TextBlock\",
\"id\": \"Text block2\",
\"text\": \"${Text_block2_Text}\"
},
{
\"type\": \"TextBlock\",
\"id\": \"Text block3\",
\"text\": \"${Text_block3_Text}\"
},
{
\"type\": \"TextBlock\",
\"id\": \"Text block4\",
\"text\": \"${Text_block4_Text}\"
}
],
\"actions\": [
{
\"type\": \"Action.Submit\",
\"id\": \"Submit\",
\"title\": \"${Submit_Title}\"
},
{
\"type\": \"Action.Submit\",
\"id\": \"Cancel\",
\"title\": \"${Cancel_Title}\"
}
]
}''' ButtonPressed=> 初回MSGボタン @Text_block_Text: $'''フローの説明''' @Text_block2_Text: $'''Excelファイルを分割します。''' @Text_block3_Text: $'''最初に、分割するファイルを選択します。''' @Text_block4_Text: $'''次に、基準となる列番号を入力します。''' @Submit_Title: $'''OK''' @Cancel_Title: $'''キャンセル'''
IF 初回MSGボタン = $'''Cancel''' THEN
EXIT Code: 0
END
Display.SelectFileDialog.SelectFile Title: $'''分割したいExcelファイルを選択''' FileFilter: $'''*.xlsx''' IsTopMost: True CheckIfFileExists: True SelectedFile=> SelectedFile ButtonPressed=> ファイル選択ボタン
IF ファイル選択ボタン = $'''Cancel''' THEN
EXIT Code: 0
END
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: SelectedFile Visible: True ReadOnly: False Instance=> ExcelInstance
Display.InputDialog Title: $'''分割する基準となる列の指定''' Message: $'''左から何番目の列を基準にして分割するか、番号を入力してください:''' InputType: Display.InputType.SingleLine IsTopMost: True UserInput=> UserInput ButtonPressed=> 列番号入力ボタン
IF 列番号入力ボタン = $'''Cancel''' THEN
Excel.CloseExcel.Close Instance: ExcelInstance
EXIT Code: 0
END
# 見出しを取得する
Excel.GetFirstFreeColumnRow Instance: ExcelInstance FirstFreeColumn=> FirstFreeColumn FirstFreeRow=> FirstFreeRow
Excel.ReadFromExcel.ReadCells Instance: ExcelInstance StartColumn: 1 StartRow: 1 EndColumn: FirstFreeColumn EndRow: 1 ReadAsText: False FirstLineIsHeader: False RangeValue=> 見出し
# テーブルをデータテーブルに読み込む
Excel.ReadFromExcel.ReadAllCells Instance: ExcelInstance ReadAsText: False FirstLineIsHeader: True RangeValue=> ExcelData
Excel.CloseExcel.Close Instance: ExcelInstance
# 分割する基準となる列の値をリストにする※重複をなくしてから
Variables.RetrieveDataTableColumnIntoList DataTable: ExcelData ColumnNameOrIndex: UserInput - 1 ColumnAsList=> ColumnAsList
Variables.RemoveDuplicateItemsFromList List: ColumnAsList IgnoreCase: False
SET 分割番号 TO 0
LOOP FOREACH CurrentItem IN ColumnAsList
Variables.FilterDataTable DataTable: ExcelData FilterParameters: { ^['RULE', 'COLUMN', 'OPERATOR', 'VALUE'], [$'''Or''', UserInput - 1, $'''Equal''', CurrentItem] } FilteredDataTable=> FilteredDataTable
Excel.LaunchExcel.LaunchUnderExistingProcess Visible: True Instance=> ExcelInstance2
Excel.WriteToExcel.WriteCell Instance: ExcelInstance2 Value: 見出し Column: 1 Row: 1
Excel.WriteToExcel.WriteCell Instance: ExcelInstance2 Value: FilteredDataTable Column: 1 Row: 2
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''yyyy年MM月dd日H時mm分時点''' Result=> FormattedDateTime
Excel.CloseExcel.CloseAndSaveAs Instance: ExcelInstance2 DocumentFormat: Excel.ExcelFormat.OpenXmlWorkbook DocumentPath: $''' ●格納したいフォルダのパスをいれる●\\分割データ_%分割番号 + 1%_%FormattedDateTime%.xlsx'''
Variables.IncreaseVariable Value: 分割番号 IncrementValue: 1
END
キーワード
#PowerAutomateDesktop #excel #PAD #Excel分割 #データ分割 #基準列 #自動化 #データフィルタリング #データ抽出 #重複除去 #ファイル保存 #Excel処理 #データ操作 #列指定 #フローデザイン #業務効率化 #ファイル管理 #自動保存 #日時表示 #PowerAutomate
English Translation
Excel File Splitting Flow
This explanation was created using ChatGPT.
In this flow, we use Power Automate Desktop to split a specified Excel file into multiple files based on a selected column as the criteria.
Flow Summary
File Selection and Criterion Column Specification
First, choose the Excel file to be split.
Next, specify the column number to use as the criterion, which will serve as the basis for splitting the Excel data.
Loading the Excel File
Open the selected Excel file and retrieve both the header information from the first row and all data.
Data Splitting by Criterion Column
Create a unique list based on the criterion column values and then separate the data for each unique value.
Saving as a New File
Save each separated dataset as a new Excel file, including the current date and time in the file name for reference.
By using this flow, you can efficiently split large Excel datasets. This is helpful when you need separate files for each department or responsible person, for example.
Supplementary Information
When using this, double-click the third action from the bottom in the flow, "Close Excel," and replace the part that says "●Enter the path of the folder where you want to store it●" with the path of the folder where you want to save the split files. This part is also explained in the video.
Create Desktop Flows - Power Automate | Microsoft Learn
Power Automate Desktop Icon by Icons8
This article's YouTube video is here
Keywords
#PowerAutomateDesktop #excel #PAD #ExcelSplit #DataSplit #CriteriaColumn #Automation #DataFiltering #DataExtraction #RemoveDuplicates #FileSave #ExcelProcessing #DataManipulation #ColumnSelection #FlowDesign #WorkEfficiency #FileManagement #AutoSave #DateTimeDisplay #PowerAutomate
この記事が気に入ったらサポートをしてみませんか?