またしてもOpenOffice calcに関する質問です。

フィルタを適用した後のセルだけをカットし、別の表(シート)に持って行くには?

ex.フィルタ適用前
  表1     表2
A B  C
1|hoge|AAA  表2はまだない
2|fuga|BBB
3|fooo|AAA

これを列C="AAA"のフィルタ適用

  表1     表2
A B  C
1|hoge|AAA  表2はまだない
3|fooo|AAA

この結果を表2に持って行きたいので「カット」して表2に「ペースト」すると、下のようになってしまう

  表1     表2
        A B  C
        1|hoge|AAA
全てカット   2|fuga|BBB
されてしまう  3|fooo|AAA

期待する結果は下の通り。

  表1     表2
A B  C    A B  C
 空白行   1|hoge|AAA
2|fuga|BBB  空白行
 空白行   3|fooo|AAA

よろしくお願いします。とても困っています。
※同等の結果が得られる関数も可。マクロはわかんないので不可。
関連質問
http://q.hatena.ne.jp/1159776614

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:2006/10/03 09:14:52
  • 終了:2006/10/06 17:30:09

ベストアンサー

id:rikuzai No.1

りくっち回答回数1366ベストアンサー獲得回数1412006/10/03 11:00:46

ポイント80pt

どうもフィルタ選択して消去がうまくいかないので、

表1、表2を関数で表示する方法をご提案。

どうしてもフィルタの方法でなければいけなかったらすみません。


例示の表の通りとして、

C1=IF($B1="AAA";"";A1)

と記入してC1:D3に数式コピー。

E1=IF($B1="AAA";A1;"")

と記入してE1:F3に数式コピー。


これで表が二つに分かれますから、

それぞれ値コピーして所定のセルに貼り付けるというのはどうでしょうか。


http://ja.openoffice.org/

id:mutsuju

関数でよいのですが、扱う表は2000行ちかくあるのです。

で、statusに応じて別々の表に振り分けたいな、と思っています。

何かいい手があったら他にも教えて下さい。

lookup関数なんか使えるんじゃないかと思ってはいますが使い方が分かりません。

2006/10/03 11:23:44
  • id:taknt
    C列でソートして

    A B  C
    1|hoge|AAA
    3|fooo|AAA
    2|fuga|BBB

    となったら、上の2行だけを 切り取って貼り付ければいいでしょう。

    http://q.hatena.ne.jp/list
  • id:mutsuju
    条件が多いのでそれはしたくありません。
    表も大きいし。
  • id:kaiton
    直接の解でないので、コメントで...
    エクセルならジャンプ・セル選択の「可視セル」でできますが、
    Calcにはその機能がないようですね...
    http://oooug.jp/compati/2.0/modules/xoopsfaq/index.php?cat_id=2#q17
  • id:mutsuju
    コメントありがとうございます。

    excelではできるのですか(使ったことないので)。
    仕方ないなあ、excel入れようかなあ。
    ライセンスはあるはずなので(嫌いなので入れていないw)

    もうちょっと回答を待ちます。
  • id:taknt
    エクセルは嫌いなんですか。
    便利ですけどね。
  • id:Tskk
    フィルタの条件が複雑で何度も適用するのが面倒ということでしたら、
    そのフィルタの結果を表すセル(列)を新規に作れば作業が楽になるのではないでしょうか?
    質問の問題も、表を丸ごとコピーしてからフィルタの結果欄でフィルタを掛けてセルを消去すればできるのでは?
  • id:rikuzai
    ええと、
    1.statusは最終いくつの表に分かれますか?それは全て違うシートに表を作成しますか?
    →場合によってlookup、ifなど使う関数が異なってきます。
    2.空白行は必要ですか?不要なら特殊フィルタで用が足ります。
  • id:mutsuju
    現在、動作している機器のシリアル番号を別の表に入力しておき、こんな式を書いています。
    =IF(MATCH($F2;regd.$A$1:$A$3000;0);"online";"")

    で、onlineになった機材を回収するのですが回収指示が複数あります。この状況を別々の表に分けたいのです。(そして分けた表ごとにcsvに書き出し、業者に指示する)

    1)回収済み
    2)着荷したが中身が足りない
    3)集荷指示をこれから出す
     ->集荷指示を出す日は不定です。例えば10/3、10/6など
    4)まだ集荷指示が出せない(=onlineでない)

    よって、表は下記のようになります
    表1:全部の状況が入力されている表
    表2:回収がすんだもの
    表3:着荷したが中身が足りないもの
    表4:MM月DD日に集荷指示を出したもの
    表5:MM月EE日に集荷指示を出したもの
    (略)
    で、例えば表1で"online"のみを表示するフィルタを書けて、集荷指示のセルにざっと"10/5指示"なんて上書きできればよいのですがフィルタで不可視になっているセルにも同じ値"10/5指示"が入力されてしまいます。

    空白行は表1には残っている必要があります。他の表に空白(=onlineでない)行だけを書き出す必要はありません。

    問題点は
    ・いかにしてstatusごとに表にわけるか
    ・いかにして表1に全ての状況を集約するか
    ・いかにしてこれらを楽に行うか
    です。

    皆様ありがとうございます。コメント欄ばっかりで何だか申し訳ないです。問題が一段落したらpt送らせていただきます。
  • id:rikuzai
    表毎にデータを振り分けていくことは特殊フィルタでできますが、
    表1の空白行が解決できません。
    なぜ空白行が必要ですか?
    また行単位のデータを全て空白にするのですか?
    表1に全ての状況を集約する必要があるのなら、
    データを移動してしまっては状況がわからなくなってしまいますが。
    イメージとしては
    表1の各機器の状況を表すSub_Statusフィールドを作成して、
    回収済、不足、集荷指示済をIF文で自動表示させ、
    これとStatusフィールド、
    集荷指示日付データの入ったフィールド、
    の三つで条件を絞って吸い出させるという感じなんですが…。
  • id:mutsuju
    皆様ありがとうございます
    結局表1に全ての状況を集約することはあきらめました。
    質問した内容自体を解決することは出来ませんでしたが勉強になりました。これで質問をcloseさせていただきます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません