私はコーディングにかなり慣れていないので、簡単に説明します。Excelで処理する非常に大きなデータセットがあります。2つのスプレッドシートから、データを一緒にプールしました。
したがって、各セットには4つの列があります。1つの列には、データポイントの英数字の名前が含まれています。(例、NC000023、NC000224など)。一致する英数字の名前を1つのシートから別のシートに並べたい。最初に頭に浮かんだのは、両方の列をアルファベット順に並べ替えることでした。これは最も一致していました。ただし、あるシートから別のシートにいくつかのデータポイントが欠落しているため、データ全体にいくつかのフレームシフが発生します。
これらのフレームシフトを修正するために、次のマクロを作成しました。
1つ目は、2つの列が特定の行で一致するかどうかを判断することです。
Sub Matching()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+m
'
Range("I2").Select
ActiveCell.FormulaR1C1 = "=EXACT(RC[-4],RC[-5])"
Range("I2").Select
Selection.AutoFill Destination:=Range("I2:I40028"), Type:=xlFillDefault
これにより、D3がE3と一致するかどうかに応じて、TRUEがFALSEの新しい列が表示され、D550はD550と一致します。
次に、FALSEでI列のセルを探し、その一致を修正するために削除する必要がある4つのセルを判別します。このコードは、原因を切り取り、邪魔にならないように貼り付け、下の行を上に移動してその場所に配置するように設計されています。
Sub RedCut()
'
' Macro2 Macro
' Shortcut CTRL + r
'
ActiveCell.Offset([0], [-3]).Select
Range(ActiveCell, ActiveCell.Offset(0, 3)).Cut
ActiveCell.Offset([0], [12]).Select
ActiveSheet.Paste
ActiveCell.Offset([0], [-12]).Select
Range(ActiveCell, ActiveCell.Offset(0, 3)).Select
Selection.Delete Shift:=xlUp
End Sub
そして他のために
Sub Bluecut()
'
' Bluecut Macro
'
' Keyboard Shortcut: Ctrl+b
ActiveCell.Offset([0], [3]).Select
Range(ActiveCell, ActiveCell.Offset(0, -3)).Cut
ActiveCell.Offset([0], [9]).Select
ActiveSheet.Paste
ActiveCell.Offset([0], [-9]).Select
Range(ActiveCell, ActiveCell.Offset(0, -3)).Select
Selection.Delete Shift:=xlUp
'
End Sub
これらのマクロを作成して、次の手順を実行してきました。
- Ctrlキーを押しながらMキーを押すと、一致するタイトル行のTRUEまたはFALSEのリストが呼び出されます。
- FALSEで行を探します。削除する必要があるのは、データセット1またはデータセット2の4つのセルかどうかを判別します
- もう一度CTRL+Mを押して、その行を修正します。
私の質問は、「列Dの対応するセルが左下の1つのセルと同一である場合、列IにFALSEが含まれる行に対してサブブルーカットを実行するか、行に対してサブレッドカットを実行する」というコードを記述できるかどうかです。列Dの対応するセルが右上の1つのセルと同一である場合、列にFALSEが表示されます。」
申し訳ありませんが、これは私が入力を開始したときに説明するのがはるかに簡単に思えました。このコードのほんの一部でも書くためのヒントであっても、あなたが私に与えることができるどんな助けにも感謝します。
前もって感謝します。