2

約 18k 行と 3 列の Excel スプレッドシートがあります。これを Access データベースのキーとして使用したいと考えています。したがって、3 つの列は

[IDKeyNumber]    [Name]    [Category]

問題は、カテゴリに 2 つのカテゴリ コード (typeA と typeB) があるため、特定の場所で ID 番号が重複していることです。

私が本当に行う方法を知る必要があるのは、Excel スプレッドシートのすべての「行/レコード」を削除することだけです。ここでは、ID 番号と名前が一致し (重複を分離するために別のレコードと一致するように)、カテゴリ = TypeB です。

したがって、カテゴリ フィールドにこの TYPEB を持つすべての重複する行/レコードを取り除きたいだけです。

ありがとう!

IA: 一部の行またはレコードには、重複ではない有効な TypeB カテゴリがあります。そのため、カテゴリのアイデアを除いて、レコード = レコードが必要です...ありがとう

4

3 に答える 3

4

Excel で ADO と SQL を使用できます。たとえば、次のようになります。

Dim cn As Object
Dim rs As Object

strFile = Workbooks(1).FullName
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
    & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon

strSQL = "SELECT id, name, max(type) AS type FROM [Sheet1$] GROUP BY id, name"

rs.Open strSQL, cn

For i = 0 To rs.Fields.Count - 1
    Sheets("Sheet2").Cells(1, i + 1) = rs.Fields(i).Name
Next

Sheets("Sheet2").Cells(2, 1).CopyFromRecordset rs
于 2009-08-14T10:15:45.440 に答える
3

列がA、B、およびCであるとしましょう。

  1. 列の上に列ヘッダー(id、name、category)を追加します
  2. AとBで並べ替えます(並べ替え順序を保持する必要がある場合は、以下を参照してください)
  3. D2に、式 "= AND(A2 = A1、B2 = B1、C2 =" TypeB ")"を入力します。
  4. 記入する
  5. AutoFilterを使用して、Dがfalseである行のみを選択します。
  6. 必要に応じてコピーして貼り付けます。

並べ替え順序を保持するには、別の列が必要になります。たとえば、数式にDを使用したため、Eとしましょう。並べ替える前に、1をE2に、2をE3に入れて、シリーズに記入します。これを行うには、拡大ハンドルをドラッグするか、値を実際にD2とD3に配置して、塗りつぶされたセルに隣接させてから、拡大ハンドルをダブルクリックします。メニューのどこかにこれを行うコマンドもありますが、その名前や場所を思い出せません。

于 2009-08-13T16:27:05.303 に答える
1

@Carls の提案または類似のものは、Excel で必要なものを取得する最も簡単な方法です。

もう 1 つのオプションは、Access でテーブルを設定し、すべての主キーを設定することです。次に、データをインポートして、そこから発生するエラーを無視します。

于 2009-08-14T04:18:37.710 に答える