advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 295 for cell filename (0.001 sec.)
cell (1170), filename (1981)
[[20051221155014]]
#score: 11170
@digest: 3f0682d8d12f2cec29984b3609cf6f29
@id: 18912
@mdate: 2005-12-22T06:03:43Z
@size: 4307
@type: text/plain
#keywords: koumoku (27060), 西第 (23246), 品購 (16094), 備工 (14665), dsh (12413), 設工 (10881), 物品 (9394), ンテ (5432), 設備 (5161), グコ (4522), 関西 (4510), 修理 (3782), 工事 (3650), 囲: (3509), ル97 (3397), 購入 (3274), 施設 (2844), 作対 (2502), 業者 (1865), 第2 (1717), ・sh (1485), メン (1449), advancedfilter (1277), 目名 (1222), タ→ (1068), エリ (1012), sheet1 (1005), filename (955), タ範 (873), myrng (827), 各シ (827), シー (772)
『条件をみたした行だけ参照したい』(エクセル97)
A B C D E F G 1 エリア 内容など 業者 金額 メンテ 物品購入 設備工事 2 関西第2 修理 a 227,850 ○ 3 関西第2 購入 b 161,700 ○ 4 関西第2 修理 c 63,000 ○ シート1に上のようなデータをAの2000ぐらいまで現在うちこんでいます。 さらにシート2〜4には項目のメンテ・物品購入・設備工事を分けて入力しているのですが 能率がとても悪いです。例えばシート2の項目メンテのシートにはシート1でメンテに○が ついた行だけ参照していくことはできますでしょうか。教えてください。 ---- まず、Sheet1のH2に =IF(E2="","",COUNTIF($E$2:E2,"○")) としてデータの入力してある行末までドラッグコピーします。 次にSheet2のA2に =IF(ISNA(INDEX(Sheet1!$A:$G,MATCH(ROW(A1),Sheet1!$H:$H,),COLUMN(A1))),"",INDEX(Sheet1!$A:$G,MATCH(ROW(A1),Sheet1!$H:$H,),COLUMN(A1))) としてE2までコピーします。 そして、A2:E2範囲を選択し、そのまま必要な行まで下側へドラッグコピーして下さい。 如何でしょうか? (SS) ---- こんな感じでは如何でしょう? 用意するもの ・Sheet1 に、上記データ ・Sheet2、Sheet3、Sheet4 のシート名を メンテ、物品購入、施設工事 に変更 各シート(メンテ、物品購入、施設工事) A1 エリア B1 内容など C1 業者 D1 金額 E1 =RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))) A2 =IF(COUNTIF(OFFSET(Sheet1!$A$1,,MATCH($E$1,Sheet1!$A$1:$G$1,0)-1,2000),"○")>=ROW($A1), INDEX(Sheet1!$A$1:$D$2000,SMALL(IF(OFFSET(Sheet1!$A$1,,MATCH($E$1,Sheet1!$A$1:$G$1,0)-1,2000)="○",ROW($A$1:$A$2000),""),ROW($A1)),COLUMN()),"") ↑配列数式 上記数式をコピペした後、Ctrl + Shift + Enter で確定。 { 数式 }となればOK。 D列の必要範囲までコピペ ※2000もあるデータですので、本来ならば、マクロの方が宜しいかと思いますが 時間が無かったので、関数で処理してみました。再計算に時間が掛かります。 (キリキ)(〃⌒o⌒)b ---- あらッ! データ行が2000もあるというのを見落としていました。 私が提示させて頂いた数式ではチョットきついみたいです。 (SS) ---- ちょっと荒っぽいですが・・・こんなことでしょうか? ○の付いた箇所のデータをそれそれの項目名のシートに抽出する。 ただし、各項目名のシートのA:Dの値を書き換え、他の列はそのまま残します。 # データシートを弄った場合、項目名シートのデータとの整合に問題が出そうで怖いのですが(滝汗) # 以前の回答に使用したのの使い回しです。 (Hatch) Sub tyu1203() Dim mySh As String '---操作対象のシート名 Dim i As Long Dim myRng As String '---データ範囲 Dim Sh As Worksheet Dim dSh As Worksheet Dim koumoku(3) As String Const mydSh As String = "Sheet1" '---データのあるシート名 Application.ScreenUpdating = False ' ----データ範囲 Set dSh = Worksheets(mydSh) myRng = "A1:G" & dSh.Range("A65536").End(xlUp).Row koumoku(1) = "メンテ" koumoku(2) = "物品購入" koumoku(3) = "設備工事" '---AdvancedFilterで各データを各シートへ抽出 '---I1:I2に抽出条件を書き込む For i = 1 To 3 mySh = koumoku(i) Set Sh = Worksheets(mySh) dSh.Range("I1").Value = koumoku(i) dSh.Range("I2").Value = "○" Sh.Range("A:D").Cells.Clear Sh.Range("A1:D1").Value = dSh.Range("A1:D1").Value dSh.Range(myRng).AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=dSh.Range("I1:I2"), _ CopyToRange:=Sh.Range("A1:D1"), Unique:=False Next i dSh.Activate Cells(1, 1).Select Application.ScreenUpdating = True Set Sh = Nothing Set dSh = Nothing End Sub ---- すいません。難しくてわかりませんでした。 (エクセル97) ---- 説明不足で失礼しました。 Sheet1のI1セルに「メンテ」、I2セルに「○」と入力し シート「メンテ」のA1に「エリア」、B1に「内容など」、C1に「業者」、D1に「金額」と 入力した状態で、シート「メンテ」のセルが選択されている状態にします。 データ→フィルタ→フィルタオブションの設定で リスト範囲:Sheet1!$A$1:$G$14 検索条件範囲:Sheet1!$I$1:$I$2 指定した範囲にチェックを入れ、抽出範囲:メンテ!$A$1:$D$1 で、実行したら該当するデータが抽出されます。 上のコードはこれをマクロにしたものです。 (Hatch) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/200512/20051221155014.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97013 documents and 608132 words.

訪問者:カウンタValid HTML 4.01 Transitional