0

Access 2007 でキャッシュフロー計算書を作成しようとしています。これは、次のような数式を使用して Excel で簡単に実行できます。

= SUM (B6:M6) / CountIF(B6:M6)>0 

しかし、アクセスに関しては、これに頭を悩ませているようには見えません。そして、データを入力するすべての会社にこれが必要です。キャッシュフロー計算書は次のようになります (まだ写真を投稿できないため)。

-------------------------------------------------- -------------------------------------------------- ------------
詳細 | 1 月 | 2月 | 3月 | 4月 | ジュン | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 | 平均 |
販売---------------------->
給料------>
交通機関----->

他の約 10 の項目が並んでおり、すべて 1 月から 12 月までのエントリがありますが、6 か月分のデータを取得することもあれば、12 か月すべてのデータを取得することもあります。(最初の列に項目があり、次の 12 ~ 13 列にヘッダーがある基本的な Excel シートを想像してください)。

アクセスでは、列を月として各アイテムのテーブルを作成しました。tblRcpt--> |rcpt_ID|Jan|Feb|... など、すべてのアイテムについて 12 月まで続きます。次に、それらを並べて、上記の表と同様に見えるように設計されたエントリ フォームに表示しますが、後でクエリを実行してそれらをリンクし、完全なキャッシュフロー ステートメントを表示します。

ここで問題が発生します。列を平均化する必要があります (一番右の列に表示されているように)。ただし、入力された月のみを平均化したい (経理では、列がない場合に「0」を入力することがあります)。 data)、そのため、列を合計して 12 で割ることはできません。それは動的でなければなりません。すべての機能は、列ではなく行のカウントと平均化を中心にしているようです。

私と一緒に耐えてこれを読んでくれてありがとう、どんな助けでも大歓迎です。

4

2 に答える 2

1

これを試して

(Jan + Feb + ... + Dec) /
  ( case when Jan = 0 then 0 else 1 end
  + case when Feb = 0 then 0 else 1 end

  + case when Dec = 0 then 0 else 1 end )
as Avg
于 2013-04-07T17:54:46.203 に答える
1

テーブル構造は次のようになります。

Particulars | Month | Amount
Sales         1       500
Sales         2       1000
Salary        1       80000

...等々。その月の値がない場合は行を入力できないか、SQL ステートメントでそれらを処理できます (以下のように)。

SELECT Particulars, AVG(Amount) AverageAmount
FROM MyTable
WHERE NULLIF(Amount, 0) IS NOT NULL
GROUP BY Particulars;
于 2013-04-07T17:57:03.333 に答える