2 つの列の値を一意の番号に対して 1 つのセルに結合しますか?

2 つの列の値を一意の番号に対して 1 つのセルに結合しますか?

皆さんが素晴らしい一日を過ごされることを祈っています。皆さんにちょっとした質問があります。私は、異なるシートからの入力を必要とするレポートを 1 つ準備しています。その情報を 1 つのシートに結合すると、次のような配置が表示されます。

質問

今、私はこの情報を他のソースと比較する必要があり、そのためには列Bと列Cから情報を取得し、列Aの一意の値に対して1つのセルに結合する必要があります。これが私が探している答えです。

予想される回答

誰かこれについて助けてくれませんか?

答え1

これには少し準備作業が必要になります。

  1. 最初の Excel は次のようになります。

1番目のファイル

  1. 二つ目:


2番目のファイル

これらの編集は、数式+Ctrl + Enterで空白を選択するトリックで簡単に結合解除できます。ここ方法が分からない場合は


次に、最初の列に次の数式を追加する必要があります: =B8&" : "&C8 これにより、「Inst tag -a : Constraint pt-a」が返されます。次に、それぞれのサーバーで作成した 3 番目の列のすべての値と一致する配列数式が必要です。配列数式は、Ctrl + Shift + Enter で入力します。 =VLOOKUP(D8,IF($A$20:$A$27=A8,$B$20:$C$27),2,FALSE)

$b$20:$c$27 は、「inst タグ...」を使用して vlookup を実行するためのデータがある場所です
。$A$20:$A$27 は、2 番目のファイルでシステムが参照される場所です。
そして、最初のファイルのこの行でシステムが参照されるのは A8 です。

そして... 出来上がり... うまくいきました...

初心者にとってはかなり複雑なので、できるかどうか教えてください。

答え2

使用できますPower Query Excel 2010以降で利用可能

このクエリを開発したら、新しいデータが追加されたときに簡単に更新/リフレッシュできます。

  • Excel から: テーブル/範囲からデータを取得 (または Excel 2010-2013 の同等のもの)
  • PQエディタでSubsystem列を選択し、Fill --> Down
    • *これにより、最初の列の空白行が埋められます
  • 列2と3を選択
    • " : "区切りとして列を結合する
  • 列1を選択
    • グループ化
      • 新しい列名合併
      • 手術: すべての行
  • 列を追加
    • 数式: =Table.Column([グループ化],"結合")
  • 新しい「カスタム」列の上部にある双方向矢印を選択します

    • 値の抽出
    • 特殊文字を使用して連結する:#(左) これは改行文字です
  • 閉じて読み込む

Excelワークシートで、列1を垂直中央揃えに書式設定し、列2をワードラップに書式設定します。

ここに画像の説明を入力してください

カスタム列の数式を入力する以外は、すべて UI から実行できます。ただし、M コードは次のとおりです。

Mコード

let
    Source = Excel.CurrentWorkbook(){[Name="Table4"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Subsystem No.", type text}, {"Inst. Tag", type text}, {"Constraint", type text}}),
    #"Filled Down" = Table.FillDown(#"Changed Type",{"Subsystem No."}),
    #"Merged Columns" = Table.CombineColumns(#"Filled Down",{"Inst. Tag", "Constraint"},Combiner.CombineTextByDelimiter(" : ", QuoteStyle.None),"Merged"),
    #"Grouped Rows" = Table.Group(#"Merged Columns", {"Subsystem No."}, {{"Grouped", each _, type table [#"Subsystem No."=text, Merged=text]}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.Column([Grouped],"Merged")),
    #"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Custom", each Text.Combine(List.Transform(_, Text.From), "#(lf)"), type text})
in
    #"Extracted Values"

関連情報