私は製造会社のOLです。Windows2000/Access2000で課内の一月毎の工数表を作っています。テーブルは[日付(年/月/日)]、[取引先]、[製品名]、[担当者]、[工数(時間)]のフィールドからなっています。レポートで、一つの製品を制作するのに何名が携わっているかを計算させたいのですが、製品名フッターにて「=Count([担当者])」にすると、3日同じ人が同じ製品を製作したとしたら、「3名」となってしまします。それを「1名」と計算させるには、どうすればよいのでしょうか?どうか教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

私もあまり詳しくないので、これよりももっといい方法があるとは思うのですが・・・



クエリーをもう一つ作るのはどうでしょうか。
ひとつのクエリーで全部をやろうとすると難しくなってしまうと思います。
ですから、先に「週報」のテーブルの[製品名]と[担当者]をグループ化したテーブルをクエリーを使って作成し、
そのテーブルをを今作ってるクエリーで呼び出してやればいいのではないでしょうか。

※デザインビュー
今作ってるクエリーは「選択クエリー」だと思いますが、メニューの「クエリー」というところで、クエリーの種類を選択できます。
そこで「テーブル作成」というのを選んで、適当なテーブル名を付けます。(カレントデータベースにチェックしてください)
そして、今度はなかみですが、テーブルの表示で「週報」のテーブルを選び、全てのフィールドをセットしてください。
このとき*は使用せずに、一つずつセットしてください。
そのときに[製品名]が一番左、その次に[担当者]がくるようにしてください。(左から優先されるため)
そして集計でグループ化します。そのとき[製品名]と[担当者]以外のものはグループ化以外のものに変えてください。
変えるといっても何にすればよいかわからないと思いますが、担当者が複数あった場合、そのなかのどれを表示するかによります。
例えば[部品コード]を「最大」にした場合は、[担当者]が同じなかで部品コードの番号が一番大きい[担当者]を選ぶようになると思います。
また、[カウント]を選んでレコード件数を返すというようなことも可能です。

わかりにくいかもしれませんけど、これでグループ化はできると思います。
上手くいかなかった場合はまた補足してください。
私もあまり詳しくないので、これよりももっといい方法があるとは思うのですが・・・
クエリーをもう一つ作るのはどうでしょうか。
ひとつのクエリーで全部をやろうとすると難しくなってしまうと思います。
ですから、先に「週報」のテーブルの[製品名]と[担当者]をグループ化したテーブルをクエリーを使って作成し、
そのテーブルをを今作ってるクエリーで呼び出してやればいいのではないでしょうか。

※デザインビュー
今作ってるクエリーは「選択クエリー」だと思いますが、メニューの「クエリー」というところで、クエリーの種類を選択できます。
そこで「テーブル作成」というのを選んで、適当なテーブル名を付けます。(カレントデータベースにチェックしてください)
そして、今度はなかみですが、テーブルの表示で「週報」のテーブルを選び、全てのフィールドをセットしてください。
このとき*は使用せずに、一つずつセットしてください。
そのときに[製品名]が一番左、その次に[担当者]がくるようにしてください。(左から優先されるため)
そして集計でグループ化します。そのとき[製品名]と[担当者]以外のものはグループ化以外のものに変えてください。
変えるといっても何にすればよいかわからないと思いますが、担当者が複数あった場合、そのなかのどれを表示するかによります。
例えば[部品コード]を「最大」にした場合は、[担当者]が同じなかで部品コードの番号が一番大きい[担当者]を選ぶようになると思います。
また、[カウント]を選んでレコード件数を返すというようなことも可能です。

わかりにくいかもしれませんけど、これでグループ化はできると思います。
上手くいかなかった場合はまた補足してください。
    • good
    • 0
この回答へのお礼

丁寧なご説明どうもありがとうございました。お礼が大変遅くなり申し訳ありません。日常業務におわれていて、インターネット開く時間がなかなか・・・。何度かチャレンジした結果、できました!やったぁ!!
クエリーのグループ化の優先順位を変え
>[製品名]と[担当者]以外のものはグループ化以外のものに変えてください
ここで手間取りましたが、なんとか一つのクエリーで可能となりました。大変勉強になり、ほんとに助かりました。この「教えて!goo」ページにも感謝します。有難うございました。

お礼日時:2001/03/09 09:36

>回答有難うございます。

ACCESS初心者なので、
SELECT [担当者] FROM 工程表テーブル GROUP BY [担当者];

これについては、先にmarmi1516さんが答えてくださいました。m(_ _)m 感謝!
#3の答えで完璧かと思いますが、まだ不足でしたら補足をお願いします。

>ごめんなさい。(自分がバカに思えてきた。)
いえいえ、こちらこそ説明不足でした。もしぶっきらぼうな回答にお気を悪くなさったとしたら、申し訳ありません。
    • good
    • 0
この回答へのお礼

ほんと、有難うございました。お礼が遅くなり、申し訳ありません。ほんと、これからもっともっと勉強していきたいと思います。有難うございました。

お礼日時:2001/03/09 09:45

私もまだ経験が浅いので偉そうな事言ってもし間違っていたら申し訳ないのですが・・・。


SELECT [担当者] FROM 工程表テーブル GROUP BY [担当者];
というのはSQL文です。
クエリーを作成する時ってたいていはデザインビューで作成すると思うんですが、SQL文で、このようにSELECT文を書く事もできるんです。左上のほうに、「デザインビュー」「SQL」とかいうボタンがないでしょうか?
それで、切り替えが可能です。
ですから、これのSELECT文をSQL表示にして記述し、デザインビューで見ることもできますよ。

クエリーというのは、テーブルのデータを加工するものです。
ですから、使えるようになると本当に便利です。

このSELECT文の意味は「工程表テーブル」の「担当者」というフィールドを「担当者」でグループ化するということです。
SELECT [担当者] ← で抽出するフィールドを指定しています。
FROM 工程表テーブル ← は抽出もとのテーブルです。
GROUP BY [担当者] ← は抽出の条件を指定しています。”GROUP BY ”と言うのはグループ化で、こうすると担当者のフィールドには同じ名前が表示される事はなくなります。担当者が同じものをひとまとめにしてしまったということです。
GROUP BYのほかにもいろいろと抽出条件を指定する方法がありますが・・・

こんな説明で果たしてどのくらい伝わったか分かりませんが・・・・
もし間違っているところなどがありましたらどなたかよろしくお願いします。

この回答への補足

SQLボタン、ありました!今までデザインビューからしかクエリは作ったことがなかったので、これで解明しました。
しかしそれだと、製品名全部ひっくるめての担当者をグループ化してしまうのです。製品ごとに担当者数を出したいのです。今、出そうとしているレポートは以下のクエリからなっています。

(テーブルは週報、取引先コード、部品コードと3つをリレーションしてます。)

SELECT 週報.日付, 週報.担当者, 取引先コード.コード, 週報.取引先, 週報.製品名, 部品番号コード.部品名, 週報.[工数(H)], Year([日付]) AS 年, Month([日付]) AS 月
FROM 部品番号コード INNER JOIN (週報 INNER JOIN 取引先コード ON 週報.取引先 = 取引先コード.取引先) ON 部品番号コード.コード = 週報.部品コード
WHERE (((Year([日付]))=[YEAR(西暦)半角で入力してください]) AND ((Month([日付]))=[MONTH 半角で入力してください]))
ORDER BY 取引先コード.コード;

上記で理解されることを願いますが、これに

SELECT [担当者] FROM 週報 GROUP BY [担当者];

を追加すると、構文エラーがでてしまいます。 なので、デザインビューで担当者のところをグループ化してみると、全部のフィールドがグループ化されてしまいうまくいきません。勉強不足で大変申し訳ないのですが、どうすればよいかを教えていただけませんか?よろしくお願い申しあげます。

補足日時:2001/02/27 16:28
    • good
    • 0

SELECT [担当者] FROM 工程表テーブル GROUP BY [担当者];


のようなクエリを作っておいて、
レポートから、
=DCount("担当者","クエリ1")

みたいな感じで呼び出せば出来ます。

不明点とかあれば、補足してください。

この回答への補足

回答有難うございます。ACCESS初心者なので、
SELECT [担当者] FROM 工程表テーブル GROUP BY [担当者];
が、よくわからないのです。
クエリにいれる式でしょうか?ごめんなさい。(自分がバカに思えてきた。)
申し訳ないのですが、詳しく説明願えないでしょうか?
よろしくお願いいたします。

補足日時:2001/02/26 10:47
    • good
    • 0

クエリーを使ったやり方ではだめなのですか??

この回答への補足

会社でしかPC使えないので、補足が遅くなって申し訳ありません。
クエリを使ったやり方が解らなかったのですが、
いい方法ありますか?
ACCESS初心者です。3月1日から始動させなくてはならないので、ぜひとも教えて下さい。

補足日時:2001/02/26 11:07
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QOutlookで[全員に返信]をクリックすると、[宛先]と[CC]をす

Outlookで[全員に返信]をクリックすると、[宛先]と[CC]をすべて[CC]に入るように設定。

今までOutlookずっと愛用していますが、現在は最新版のOutlook2010を使用してます。

[全員に返信]をクリックすると、元メールの[送信元]と[宛先]が新メールの[宛先]に変わり、[CC]はそのまま引継ぎますが、元メールの[送信元]と[宛先]と[CC]を全部[CC]に入るように設定などありますか。

または、[送信元]だけを[宛先]にして、ほかはすべて[CC]に入ってもいいですが。

Aベストアンサー

>[全員に返信]をクリックすると、元メールの[送信元]と[宛先]が新メールの[宛先]に変わり、[CC]はそのまま引継ぎます

これって、Microsoftのメールソフトの仕様ですかね。
自分が受信したメールの宛先やCCであっても、Outlook Expressもそうなるようです。

私のメインのThunderbirdでは、自分が複数の宛先やCCに含まれている場合でも、それらの受信メールから「全員に返信」で、受信メールの「送信元」のみが、返信メールの宛先に入り、他の「宛先」や「CC」はすべてCCに表示されます。

>[送信元]だけを[宛先]にして、ほかはすべて[CC]に入ってもいいですが。

この部分での方法は、返信メールの宛先欄で、送信元以外をドラッグして選択して右クリックから切り取り、CC欄に右クリックから貼り付けするしかないと思います。

Q[ctrl] + [V] で書式無しテキストとして貼り付ける

PowerPoint2002を使用しています。

テキストを [ctrl] + [C] でコピーし、[ctrl] + [V] で貼り付けるときに、書式無しテキストとして貼り付ける方法はないでしょうか?

書式なしテキストとして貼り付けるには、
「編集」→「形式を選択して貼り付け」→「書式なしテキスト」と選択しますが、これでは手間がかかります。
マクロを登録すればよいのかもしれませんが、もっとスマートにできる方法がありましたら教えてください。

Aベストアンサー

こんにちは

私はテキストエディタを別に立ち上げておき,一度そこにペーストしてから再びコピーし
て,パワーポイントにペーストしています.
コピー&ペーストを2回繰り返すことになりますが,[型式を…]をやるよりは楽かなぁ~
と思っています.書式を無くしたいときはいつもこの方法を使っています.

[型式を…]のコマンドをツールバーに入れてしまうという方法もありますが,メニューか
ら選ぶという手間が省けるという程度です.

QOutlookExpressの[eml]データを[msg]データに

メールデータについて教えて下さい。

通常OutlookExpressのメールデータを保存すると
拡張子が[eml]になりますが、
これをOutlookの[msg]に変換する方法は
ありますでしょうか?

理由は、取引先からメールデータを
[msg]で欲しいといわれたのですが、
私のメーラーはOutlookExpressのため
渡すことができません。

何か良い方法を教えて下さい。

Aベストアンサー

下記のサイトのソフトはいかがでしょうか?

参考URL:http://www.freedownloadscenter.com/Best/eml-convert.html

Qエクセル表示形式で[DBNnm1][$-FFFF]0となるのは?

アラビア数字を漢数字で表記(9105→九一〇五)するため「表示形式」、「ユーザー定義」で
[DBNnm1]0
と入力(詳しくはないのですが、このサイトで調べてそのようにしてみました)してファイルを保存しましたが、再びファイルを開いたときにそのセルの表示がアラビア数字に戻っており、表示形式が
[DBNnm1][$-FFFF]0
と変わっています。[$-FFFF]の部分は何を表しているのですか?
また、保存時のまま変わらないようにする対処法を教えてください。よろしくお願いします。

Aベストアンサー

「ユーザ定義」で”[DBNum1]G/標準”とやるだと思います。
この場合、9105->九千百五と変換されます。

9105->九一〇五と変換するには、関数を使わないと出来ないのではないでしょうか。

A1のセルに数字が入っている場合、A2のセルに以下の式を書きます。
=NUMBERSTRING(A1,3)

Q[3430514]を[昭和43年5月14日]と表示させたい

大量のデータを

3430514 > 昭和43年5月14日

という形式に変換、またはセルの書式設定で
変換したいです。

1文字目は、

1 明治
2 大正
3 昭和
4 平成

2文字目以降は年号・月・日という形式です。
なんとか手間をかけずに綺麗に整理できればと、
思うのですが、良いお知恵がありましたらお教え下さい。

Aベストアンサー

3430514がA1セルにあるとすれば

=CHOOSE(LEFT(A1,1),"明治","大正","昭和","平成")&MID(A1,2,2)&"年"&MID(A1,4,2)&"月"&RIGHT(A1,2)&"日"

これでOKなはず。

以下、式をオートフィルでコピーすれば大量のデータでも大丈夫です。


人気Q&Aランキング

おすすめ情報