2016-04-01 5 views
1

私は、ODBC接続からデータを引き出し、そのデータをフィルタリングしてからExcelに戻すPower Queryテーブルを持っています。次に、Excelのネットワーク日付式を利用しているExcelの表にいくつかの列を追加します。私の問題は、Power Queryテーブルが空になることがあり、空のときにNetWorkdaysの式がExcelテーブルから消えてしまうことです。電力クエリテーブルが空であることを確認してから別のものを返します

私の質問はこれです。 Power Queryが空であるかどうかをチェックして、0を返すか、Excelのセル内の数式が消えないようにするか、テーブルが空の場合に式を削除できないようにする方法がありますか?

答えて

1

クエリ結果にデータがない場合、Power Queryが空白の行を返すようにする方法がありましたが、回避策があります。

  1. PowerQueryによって返されるテーブルとまったく同じ列を持つテーブルをワークブックに作成します(NETWORKDAYS式に追加した列は含めないでください)。表には空白の行が1つだけあります。
  2. 作成したテーブルから新しいクエリを作成し、ODBCクエリを追加します。
  3. インデックスを追加する(これにより、クエリのどの行が作成したテーブルのものであるかを特定できるため、ODBCクエリで行が返された場合にフィルタリングすることができます)
  4. ODBCクエリの複製を作成します。これは、クエリが行を返すかどうかを判断できるようにするためです。
  5. クエリエディタで複製を開きます。 "Group"という名前のカスタム列を追加するには、formula = "Group"を使用して、すべての行に "Group"を持つ列を追加します。
  6. 「変換」タブで、手順3で作成した「グループ化グループ化」および「グループ化によるグループ化」列に、「行数の計算」操作による「Count」という名前の新しい列を入力します。これは、2つの列(GroupとCount)を持つ1行のテーブルを返します。
  7. この数式を使用して別のカスタム列を追加する= [Count]> 0の場合1 else else
  8. 手順2-3で作成した追加クエリに戻って、手順4- 7。ステップ7(ステップ4〜7の問合せに)で追加した索引列とステップ3で追加したカスタム列をマージします。 2番目のクエリで一致しない行のみが返されます。

最後に、ODBCクエリから返されたデータがない場合は、ロードされますステップ1で作成したテーブルの行。ODBCクエリにデータがある場合、ステップ1のテーブルの行は、左の反結合によって除外されます。

関連する問題