膨大な量のデータがあります。(10000行以上)

01|A1|A2|B1|B2|C1|C2|
02|A1|A2|B1|B2|
03|A1|A2|B1|B2|C1|C2|D1|D2|
とあるものを

01|A1|A2|
01|B1|B2|
01|C1|C2|
02|A1|A2|
02|B1|B2|
03|A1|A2|
03|B1|B2|
03|C1|C2|
03|D1|D2| 
と並べ替えるにはどうしたらいいのか教えてください。
よろしくお願いします。

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

A 回答 (1件)

データベースだというのにテーブル名もフィールド名もありませんが


テーブル名「studynow」、フィールド名は下のようなものとします

ID F1 F2 F3 F4 F5 F6 F7 F8
01|A1|A2|B1|B2|C1|C2| |

ユニオンクエリはクエリデザインビューでは作れません
SQLビューにしたのように書きます

select ID,F1,F2
from studynow
where F1 isnot null and F2 is not null
union all
select ID,F3,F4
from studynow
where F3 isnot null and F4 is not null
union all
select ID,F5,F6
from studynow
where F5 isnot null and F6 is not null
union all
select ID,F7,F8
from studynow
where F7 isnot null and F8 is not null
order by ID,F1,F2
    • good
    • 0
この回答へのお礼

情報不足で申し訳ありません。
当方アクセス初心者で、ユニオンクリエは初めてさわりました。
実データにあてはめ、何度か書き直しをしたところ欲しかった情報が得られました。
自動的に昇順に表示されたのは予想外でしたが、次の段階で必要な作業だったので、うれしいオマケです。
ありがとうございました!

お礼日時:2008/06/23 21:45

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

Qエクセルについてなのですが、 例えば指定の範囲内に A B B C A B C A B B C D

エクセルについてなのですが、

例えば指定の範囲内に
A B B C A B C A B B C D B D
と並んだセルからAとDの合計を出したい時はどのようにすればいいのですか?

COUNTIFSだったら複数条件を満たした数を表示するので希望とは違います。
希望はA or Dの合計を出したいのです。

Aベストアンサー

こんにちは!

COUNTIFS関数はAND条件になりますので、今回の質問には適しません。

=COUNTIF(範囲,"A")+COUNTIF(範囲,"D")
のように「A」のセル数と「D」のセル数をコツコツと足し算するのが
間違いないと思います。m(_ _)m

Q関数について エクセルシートに下記表があります。 A B C D 1 1 2 3

関数について
エクセルシートに下記表があります。
A B C D
1 1 2 3 4
2 1 1
3 1 1 1
4 1 1 1
これを下記のように1行目に入っている数字に
2行目以降の1のところだけ、一括で置き換える関数はありますでしょうか?

A B C D
1 1 2 3 4
2 2 4
3 2 3 4
4 1 2 3

Aベストアンサー

ご質問のような条件付きで直接置き換えるようなことは、一般機能でできません。
よって、いったん別のセルを使った方法になります
F2セルに
=IF(A2=1,A$1,IF(A2="","",A2))
1以外の入力が無いようなら
=IF(A2="","",A$1)
右へ下へオートフィル
添付図参照

F2:I4セル範囲をコピー

A2セルに 値の貼り付け

QエクセルのSheet1のA1:D5の範囲をSheet2のA1:D5へ参照したいのですが、何か方法はあ

エクセルのSheet1のA1:D5の範囲をSheet2のA1:D5へ参照したいのですが、何か方法はありますでしょうか?

Aベストアンサー

#5です。間違えました。

正「Sheet2のB2に以下を貼り付けて」
誤「Sheet2のA3に以下を貼り付けて」

QExcel B列の名前を見てA列に番号をふりたいです。1-1 1-2 2-1 2-2

質問させて頂きます。
日々の仕事の作業の中でExcelであるB列に前もって名前が入っています。
現状手打ちでB列の名前を見ながら1-1 1-2 名前が変わったら2-1 2-2 というように番号をふっています。時間短縮で何かいい方法はないでしょうか?(マクロなど)
ご回答お願い致します。
例を下に入れております。

A列   B列
1-1 山田太郎
1-2 山田太郎
2-1 佐藤和也
2-2 佐藤和也
3-1 吉田五郎
3-2 吉田五郎
3-3 吉田五郎
4-1 伊藤忠文
5-1 田口達也
6-1 東京世田谷区分譲
6-2 東京世田谷区分譲
6-3 東京世田谷区分譲

宜しくお願い致します。

Aベストアンサー

No.1です。

>時間短縮で何かいい方法はないでしょうか?(マクロなど)・・・
というコトですので、VBAでもやってみました。もちろん作業列は不要です。
シートモジュールにしてください。

Sub Sample1()
Dim i As Long, lastRow As Long, c As Range
Application.ScreenUpdating = False
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(Cells(2, "A"), Cells(lastRow, "A")).ClearContents
End If
Range("C:C").Insert
Range("B:B").AdvancedFilter Action:=xlFilterCopy, copytorange:=Range("C1"), unique:=True
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
Set c = Range("C:C").Find(what:=Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
With Cells(i, "A")
.NumberFormatLocal = "@"
.Value = c.Row - 1 & "-" & WorksheetFunction.CountIf(Range(Cells(2, "B"), Cells(i, "B")), Cells(i, "B"))
End With
Next i
Range("C:C").Delete
Application.ScreenUpdating = True
End Sub


※ データがバラバラでも出現順に「1-○」のような結果になります。
こんな感じではどうでしょうか?m(_ _)m

No.1です。

>時間短縮で何かいい方法はないでしょうか?(マクロなど)・・・
というコトですので、VBAでもやってみました。もちろん作業列は不要です。
シートモジュールにしてください。

Sub Sample1()
Dim i As Long, lastRow As Long, c As Range
Application.ScreenUpdating = False
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(Cells(2, "A"), Cells(lastRow, "A")).ClearContents
End If
Range("C:C").Insert
Range("B:B...続きを読む

QA1にデータがある場合、A1とB1とC1が等しいか?

エクセルで、タイトルのことを確認したいです。
どうすればよろしいでしょうか?

Aベストアンサー

>まずA1にデータがあるかどうかを判断した上で

普通にIF関数でいいと思いますけど…

=IF(A1="","",AND(A1=B1,B1=C1))

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


人気Q&Aランキング

おすすめ情報