表に主キーも通し番号もない場合、パワークエリで追加することはできますか?
できます! Power Queryの「インデックス列」というコマンドが有効ですよ!
具体的な使い方について解説していきますね。
はじめに
本題に入る前に、この記事がおすすめな方を挙げてみます。
- 元データの表へ通し番号の追加を自動化したい方
- データ整形・加工の工程が複数あり、かつその作業が定期的に発生する方
- Power Query(パワークエリ)の使い方を習得したい方
前提条件
この記事のテクニックを使うためには、以下の条件を満たす必要があります。
- ExcelのバージョンはExcel2010以降(Microsoft365含む)が必須
- Excel2010/2013ユーザーの場合、事前にMicrosoft社公式HPよりPower Query(パワークエリ)のダウンロードが必要(Excel2016以降は標準機能)
- Power Query(パワークエリ)の概要を理解していること
→まず、以下の記事で概要を把握することをおすすめします。
解説動画:【パワークエリ#1】「パワークエリ(Power Query)」とはどんな機能か?大枠の流れや手順、使い方まとめ この記事の内容は下記の動画でも解説しています。 コメント欄の各プロセスの時間部分をクリックすると該 …
表に主キーや通し番号を追加したい場合に「インデックス列」が有効
元データの表には通常主キーが必要です。
主キーとは、そのレコードが一意(重複していない)であることを示すためのコードや番号のことです。(代表例として、社員番号や商品コードなど)
しかし、元データによって主キーも通し番号もない場合もあります。
こんな場合は「インデックス列」を活用すると通し番号を追加できて便利です。
通常、主キーもこの通し番号に任意の文字列を「&」等で組み合わせて作成することが主流です。
ちなみに、Excelワークシート上で通し番号を追加する方法は以下の3パターンあります。
- 数値入力し、オートフィル機能を利用する
- ROW関数を利用する
- COUNTIF・COUNTIFS関数を利用する
HLOOKUP関数やOFFSET関数、INDEX関数などの行番号を引数として指定する関数や、表の項番を自動化し …
ただし、他のデータ整形作業とセットで行うなら、Power Query(パワークエリ)で行った方が、一連の作業手順を記録できて自動化できますよ!
では、Power Query(パワークエリ)でのインデックス列の手順を確認していきましょう。
Power Query(パワークエリ)でのインデックス列の追加手順
今回の前提として、インデックス列の追加を行う対象テーブルはブック内にあり、事前にPower Queryエディターに取り込んでいる状態からスタートするとします。(ブック内のデータ取得について復習したい方は下記記事を参照)
はじめに 本題に入る前に、この記事がおすすめな方を挙げてみます。 同じブック内の表データ(テーブルまたはセル範 …
まずはリボンの「列の追加」タブをクリック(①)します。
次に「インデックス列」の「▼」をクリック(②)し、「1から」をクリック(③)すれば完了です。
手順②で「インデックス列」部分をクリックすると「0から」の通し番号になるのでご注意ください。
表にインデックス列が追加できたらOK!
「プレビュー」ウィンドウを見ると、無事表の右端に1から始まる通し番号の列が追加されていますね!
あとは、列名の変更や位置の変更等、その他の処理を行った上で、任意の方法でデータを出力すれば完了です。
【参考】「カスタム」でインデックス列の開始値と増加値を変更可能
通常、インデックス列は「0」か「1」のいずれかを開始値として、「1」ずつ増えていく連続データです。
ただ、状況によっては奇数や偶数、倍数等の連続データにしたいケースもあります。
こんな場合、インデックス列の「カスタム」を使うことで任意の通し番号を作成することが可能です。
この「インデックス列の追加」ダイアログ上で「開始インデックス」と「増分」を任意の値を入力すればOKです。(奇数のインデックス列にするケースは以下の通り)
【参考】インデックス列の内容を変更したい場合は
もし、インデックス列の内容をあとで変更したい場合は、「クエリの設定」ウィンドウの任意のステップをダブルクリック、もしくは歯車マークをクリックしましょう。
すると、「インデックス列の追加」ダイアログが起動するため、「開始インデックス」と「増分」を任意の値に直して、再度「OK」ボタンをクリックすれば良いですね。
【補足】インデックス列の先頭に任意の文字列をつけて主キーを作成する方法
インデックス列を活用して先頭に任意の文字列を追加し、主キーにしたい場合は「プレフィックス」というコマンドを活用すると良いです。
これで数値の前に任意の文字列を追加でき、主キーを作成できます。
もし、数値の後の方が良い場合は「サフィックス」というコマンドを使えば良いです。
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
サンプルファイル_PowerQueryデータ整形_インデックス列.xlsx
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)
ファイルを開いたら、「入れ替え」を行う前に、Power Queryエディターを起動させてくださいね。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリックしてください。
- リボン「データ」タブをクリック
- 「クエリと接続」をクリック
- 「商品マスタ」クエリをダブルクリック
ここまで準備ができたら、次の手順を実施してください。(今までの解説のまとめです)
- リボン「列の追加」タブをクリック
- 「インデックス列」の「▼」をクリック
- 「1から」をクリック
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
「インデックス列」はPower Query(パワークエリ)では基本操作のひとつです。
このインデックス列で主キーを作成する、あるいは複雑な表のレイアウト変更時の途中で活用できたりしますので、ぜひ覚えましょう。
なお、Power Query(パワークエリ)の各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。
また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!
ご参考になれば幸いですm(_ _)m
インデックス列は簡単な機能ですが、意外と活用範囲は広いです。
パワークエリでいろいろな表のデータ整形を行っていると活用機会も多くなるので、早めに覚えておきましょう!