• 締切済み

Accessのクエリについて

下記のようなデータがあります。 ファイル番号 順番 カード番号 名前 -------------------------------------------- 1    1 0010 山田 1    1 0009 佐藤 1    1 0008 鈴木 2    1 1010 高橋 2    1 1011 小林 2    2 1012 北沢 2    2 1013 竹田 3    1 2001 小山 3    1 2000 田中 ファイル番号と順番でグループ化し、カード番号の最小・最大、その最小・最大の名前を 取得したいです。 サブクエリを使用して出来ましたが、1つのクエリで出来ないかと思い、質問しました。 よろしくお願いします。

みんなの回答

回答No.2

【補足】MAX()、MIN()の回数を減らすには・・・。 SELECT   Max(Format([カード番号],"0000") & ":" & [名前]) AS THE_MAX,   Min(Format([カード番号],"0000") & ":" & [名前]) AS THE_MIN,   CutStr([THE_MAX],":",1) AS Max_番号,   CutStr([THE_MAX],":",2) AS Max_名前,   CutStr([THE_MIN],":",1) AS Min_番号,   CutStr([THE_MIN],":",2) AS Min_名前 FROM T4 GROUP BY T4.ファイル番号, T4.順番;

回答No.1

SELECT  CutStr(Max(Format([カード番号],"0000") & ":" & 名前),":",1) AS MAX_番号,  CutStr(Max(Format([カード番号],"0000") & ":" & 名前),":",2) AS MAX_名前,  CutStr(Min(Format([カード番号],"0000") & ":" & 名前),":",1) AS MIN_番号,  CutStr(Min(Format([カード番号],"0000") & ":" & 名前),":",2) AS MIN_名前 FROM T4 GROUP BY [ファイル番号], [順番]; ここでは CutStr()を使っていますが、Format()、Left()、Mid()を利用しても同じこと。そういうことで、『関数を利用すれば』という条件付きで可能だと思います。 Public Function CutStr(ByVal Text As String, _            ByVal Separator As String, _            ByVal N As Integer) As String   Dim strDatas() As String   strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs(N <= UBound(strDatas))) End Function

関連するQ&A

  • エクセルで2つのリストを統合するには?

    エクセルの別々のシートにある2つのリストを統合したいのですが、過去の質問などを見てもうまくいきません。具体的には 【表1】 番号 氏名 住所 A 佐藤 東京 B 高橋 神奈川 C 渡辺 埼玉 D 田中 千葉 E 小林 山梨 【表2】 番号 氏名 年齢 B 高橋 22 D 田中 45 という2つの表で、これを 番号 氏名 住所 年齢 A 佐藤 東京 B 高橋 神奈川 22 C 渡辺 埼玉 D 田中 千葉 45 E 小林 山梨 のようにまとめたいのです。 「データの統合」を使ってみましたがうまくいきませんでした。よろしくお願いします。

  • アクセスレポートのNextRecordについて

    アクセス2000を使用しています。 レポートのNexrRecordプロパティの中身が分からないので 教えてください。  以下のテーブルを元にレポートを作成しました。 ****************************** テーブル名:Tテスト ID 名前  (←フィールド名) ------------------------------ 1 田中 2 佐藤 3 鈴木 4 小林 5 大橋 ****************************** レポートの詳細セクションで2件目の フォーマット時、NextRecordをfalse にしましたところ、以下のように出力 されました。 「出力結果」 1 田中 2 佐藤 3 鈴木 4 小林 5 大橋 つまり、テーブルの内容がそのまま出力されました。 素人考えでは、 1 田中 2 佐藤 2 佐藤 3 鈴木 4 小林 5 大橋 なるものとばかり思っておりました。 NextRecordがいつどのように働くのか詳しく教えて いただきたいと思うのですが、どうぞよろしくお願い いたします。 (レポートのセクションの実行順がよくわかりません)

  • アクセスのクエリで重複しているデータについて

    テーブルの一部分のフィールドを使ってクエリAを作成しています。 [クエリA] 番号 氏名  郵便番号 住所     電話番号 子供 1  田中守  111-0000 東京都・・・ 000-0000 章 2  佐藤健  122-0001 神奈川県・・・ 001-0001 花子 3  田中守  111-0000 東京都・・・ 000-0000 陽子 これを重複しているデータを省くのですが、[子供]の名前はすべて取り出したいと思っています。 どの様にすれば良いか教えて頂けないでしょうか? 氏名  郵便番号 住所     電話番号 子供 田中守  111-0000 東京都・・・ 000-0000 章,陽子 佐藤健  122-0001 神奈川県・・・ 001-0001 花子 最終的には、宛名印刷を行った時に、子供の名前も連名で表示したいと思っての事です。 現在、クエリで行っておりますが、クエリでなくても構いません。 足りない情報はすぐに補足致しますので、お手数ですが、どうぞよろしくお願い致します。 Access2003を使用しております。

  • エクセルで

    以下のようなシートがあります。 A   B   C 01   小林  (1) 02   佐藤  (2) 03   田中  (1) 04   本多  (1) 05   近藤  (2) A列⇒個人別番号(上から下に大きな番号になる) B列⇒名前 C列⇒グループ 以上のシートをもとに、別のシートに、『グループ(1)』と『グループ(2)』の名簿を作成したいのです。名簿のイメージは以下の通りです。 A列      B列 グループ(1)   グループ(2) 小林      佐藤 田中      近藤 本多 名前は、個人番号の小さい順番で並べていきたいのです。理想は関数で作成したいと考えています。宜しくお願い致します。

  • excel 重複したデータのコピー

    例えばこんなデータがあるとします。 名前  値 鈴木  1 佐藤  2 佐藤  5 小林  2 田中  3 田中  1 田中  2 斉藤  0 山田  4 山田  2 というデータから 佐藤  2 佐藤  5 田中  3 田中  1 田中  2 山田  4 山田  2 という感じで名前が2つ以上あるデータだけ抽出・コピーをしたいのですが、 どういう風にすれば出来るでしょうか。

  • ACCESS クエリの抽出項目をEXCELから

    Access2000のクエリの抽出項目をExcel2013の内容を抽出項目として指定するにはどうすればよいでしょうか。 Excelには、 佐藤 田中 鈴木 ......... のように縦に名前が最大18名分入っています。 この(最大)18名の名前をAccessの抽出項目とします(フィールドは10あってその6番目に抽出項目を18名分入力したいのです)。 18名を一人一人コピペしていたのですが、何とか簡素化できないものかな?と思っています。 できれば、マクロで一発で抽出項目を貼り付けたいのですが。 よろしくお願いします。

  • 複数条件でのVlookup

    Vlookupなのですが複数条件でも使えるのでしょうか? たとえばふと津のファイルを比較し、違いの部分を抜き取る作業をするとします。 一つのファイルでは A       B C 名前    電話番号 会員番号 佐藤    000-000-00  21 田中    111-111-11 22 池田    222-222-22 33 もう一方のファイル(Newファイルとします)で 佐藤   000-000-11 55 田中   111-111-11 22 池田   222-22-33 44 vlookup で名前だけ一致するものを選び、Newファイルの会員番号を返すようにすると、佐藤、田中、池田が全てえらばれてしまい、会員番号として、55,22,44が帰ってきてしまいます。 しかし、両ファイルで名前と電話が一致するものを選びNEWファイルの会員番号を返すならば、 田中だけの会員番号が帰ってくるとおもいます。 複数条件のVlookupというのはできないのでしょうか? Dget関数というのをしらべましたがいまいちよくわからずvlookupとかでできればいいなと思うのですが。 教えてください。  

  • よろしくお願いします。

    番号|名前|国語|算数 ----+----+----+---- 1 |佐藤|95 |85 2 |高橋|75 |95 3 |今井|68 |99 を 点数|番号|名前 ----+----+---- 68 |3 |今井 75 |2 |高橋 85 |1 |佐藤 95 |1 |佐藤 95 |2 |高橋 99 |3 |今井 と重複させ並べ替えて出力したいのですが・・ 初歩的な質問でごめんなさい。教えてください・・

  • よくある名字なのに、同級生に一人もいなかったのは?

    下記は、日本の多い名字ベストテンです。  (1)佐藤 (2)鈴木 (3)高橋 (4)田中 (5)渡辺 (6)伊藤 (7)山本 (8)中村 (9)小林 (10)斉藤 この中で、あなたの幼稚園から高校までの同級生に一人もいたことがなかった名字は、どれですか? 因みに私の場合は、どの名字の同級生もいましたが、男性の(1)佐藤、女性の(6)伊藤(8)中村(9)小林は、一人もいませんでした。

  • EXCELで重複したデータの処理について

    氏名 | 点数 ----------- 山田 | ----------- 鈴木 | ----------- 小林 | ----------- 高橋 | ----------- 田中 | という表があるとします。 氏名 | 点数 ------------ 山田 | 80 ------------ 鈴木 | 100 ------------ 小林 | 70 ------------ 高橋 | 80 ------------ 田中 | 80 というように点数を入力すると 順位 | 名前 | 点数 ------------------- 1 | 鈴木 | 100 ------------------- 2 | 山田 | 80 ------------------- 2 | 高橋 | 80 ------------------- 2 | 田中 | 80 ------------------- 5 | 小林 | 70 のような表を自動的に作成できるようにしたいのですが、どうもうまくいきません。 順位と点数の並び替えは比較的簡単にできたのですが、それに対応した名前の並び替えがうまくできないのです。 VLOOKUP関数を使用して得点に対応した名前を表示させようとしたのですが、 順位 | 名前 | 点数 -------------------- 1 | 鈴木 | 100 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 5 | 小林 | 70 となってしまい、80点の取得者が全て山田になってしまいました。 このような場合、どのようにすれば正常に並び替えを行うことができるのでしょうか。 言葉足らずで申し訳ありませんが、よろしくお願い致します。 OSはWindowsXP、ソフトはEXCEL2002を使用しています。