[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『振り分けます。』(ピピロン)
いつもお世話になります。
下の表から
一般に〇がある人は、シート2へ(一般に該当する人だけ)。
機械に〇がある人は、シート3へ(機械に該当する人だけ)。
また性別で男に該当する人は、シート4へ(〇の有無に関係なく)。
性別で女に該当する人は、シート5に(〇の有無に関係なく)行詰めで氏名のみを表示させたいのですが、その対処方法を教えて頂けませんでしょうか?
__A__ __B__ __C__ __D__ 1 氏 名 一 般 機 械 性 別 2 カキクケコ 〇 男 3 サシスセソ 〇 女 4 タチツテト 〇 女 5 ナニヌネノ 〇 男
〔Excell2007/Win XP〕
フィルタオプションの設定で振り分けてみました。 (Hatch) Sub Macro1() Dim r As Range, x As String, y(5) As String, i As Long Set r = Sheets("Sheet1").Range("A1:D5") x = Sheets("Sheet1").Range("A1").Value y(2) = "=Sheet1!B2=""〇""" y(3) = "=Sheet1!C2=""〇""" y(4) = "=Sheet1!D2=""男""" y(5) = "=Sheet1!D2=""女""" For i = 2 To 5 With Worksheets("Sheet" & i) .Range("A:A").ClearContents .Range("A2").Formula = y(i) .Range("A3").Formula = x r.AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=.Range("A1:A2"), CopyToRange:=.Range("A3"), Unique:=False .Range("1:2").Delete End With Next i End Sub
良く似た要望は過去にもいくつかあります。 [[20100120171452]] 『エクセルで顧客の未納者一覧を作成したい』(ぶる) 上記を参考にして作ると、以下のような式(一般に○[Sheet2]の式) =IF(COUNTIF(Sheet1!$B$2:$B$5,"〇")<ROW($A1),"",INDEX(Sheet1!$A$2:$A$5,SMALL(INDEX((Sheet1!$B$2:$B$5<>"〇")*9^9+ROW($A$1:$A$4),),ROW($A1)))) 適用セル範囲は適宜調整してください。 ROW($A$1:$A$4)に指定してあるセル範囲は必ずA1から始まるセル範囲にすることに注意。 データ量が大きいと再計算に時間がかかる場合があるので、 「フィルタオプションの設定」を利用するか、 データベースクエリを設定しておくのも良いかもしれません。 (みやほりん)(-_∂)b
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.