データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ
> 事象は以下の方のブログと同じで、> *http://officetanaka.net/excel/function/GetAndTransform/13.htm*
> でもなあ、これもなあ、何で「4」が表示されないんだろ…。
まず上記の件に関しては、単に[テーブル2]の[ID]を表示列として選択していないから
そのように見えているだけです。
> SQL serverでfull outer joinをやった結果
( SQL Server 上で実行する SQL )
SELECT t1.ID AS [テーブル1のID],
t1.記号,
t2.ID AS [テーブル2のID],
t2.名前
FROM dbo.テーブル1 AS t1
FULL OUTER JOIN dbo.テーブル2 AS t2
ON t1.ID = t2.ID;
つまり、FULL OUTER JOIN だけでは、結合キーとなっている
2 つの列の値を 1 つの列に統合するような操作は行なわれません。
少なくとも、上記記事で挙げられている例において、
「完全外部結合の結果から一部のキーの値が欠落している」
という解釈するのはそもそも誤りです。
そしてそれは PowerQuery であっても同様です。
( PowerQuery の詳細エディタ)
let
Source1 = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
ChangedType1 = Table.TransformColumnTypes(Source1,{{"ID", Int64.Type}, {"記号", type text}}),
Source2 = Excel.CurrentWorkbook(){[Name="テーブル2"]}[Content],
ChangedType2 = Table.TransformColumnTypes(Source2,{{"ID", Int64.Type}, {"名前", type text}}),
JoinedTable = Table.NestedJoin(ChangedType1, {"ID"}, ChangedType2, {"ID"}, "テーブル2", JoinKind.FullOuter),
Expanded = Table.ExpandTableColumn(JoinedTable, "テーブル2", {"ID", "名前"}, {"テーブル2のID", "名前"}),
RenamedColumns = Table.RenameColumns(Expanded,{{"ID", "テーブル1のID"}})
in
RenamedColumns
> PowerQueryでfull outer joinをやった結果で行数が異なる
そういう結果が返されるか否かは、実際に PowerQuery で実行されているクエリと、
そのクエリから参照しているデータソース次第でしょう。