- ベストアンサー
マクロについて
- エクセルで2009年と2010年のデータがあり、特定の条件に応じてセルに数値を表示したい場合、IF関数とマクロ式を使用することができます。
- 具体的には、B列には2009年と2010年のデータがあり、C列には特定の条件に該当する数値が表示されます。重複しない数値の一覧はD列に表示され、D列には数値が2009年と2010年のどちらの集合に属するかも表示されます。
- また、マクロ式は数値が増えても自動的に対応するようになっています。初心者でも簡単に使うことができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub try() Dim myDic As Object Dim r As Range Dim rr As Range Set myDic = CreateObject("Scripting.Dictionary") For Each r In Range("A1:B1") For Each rr In Range(r.Offset(1), Cells(Rows.Count, r.Column).End(xlUp)) If Not myDic.Exists(rr.Value) Then myDic(rr.Value) = Array(rr.Value, r.Value & "のみ") Else myDic(rr.Value) = Array(myDic(rr.Value)(0), Replace(myDic(rr.Value)(1), "のみ", "且つ") & r.Value) End If Next Next Range("C2").Resize(myDic.Count, 2).Value = _ Application.Transpose(Application.Transpose(myDic.Items)) Set myDic = Nothing End Sub 一例になれば。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
>マクロ式でかきたいのですが マクロのプログラムの中身は、ふつうエクセルでは「VBA」といって、式ではなく「コード」という。 ーー それと関連して (例)D2セルには,のところに質問者が挙げているのは関数式です。 ーー 質問の要求はどちら(VBAか関数か)明確にするため補足くされたい。 ーー また >C列に、B2、B3、B3、C2、C3のすべての番号を重複なしでならべ、D列に、下記の式を入れ、その番号が2009と2010のどのような集合に属しているのかを 文章では判りにくいので、質問の例では結果は(シートのセルのデータ並びとしては)どうなってほしいのか補足されたい。
補足
大変申し訳ございませんでした。 最終目標は、2009年と2010年に、並んでいる番号が『2009年のみ』『2010年のみ』『2009年かつ2010年』のどれに当たるのかを知りたいのです。分かりにくい説明になり大変申し訳ございません。