[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件が合う値だけを抽出したいのですが』(ピョン)
いつもお世話になってます(^o^)/ またまた質問させてください。 シート1に果物の名前と、金額が入ってたり入ってなかったりしています。 名前と金額が入ってるものだけを、自動的に違うシートに抽出したいのですが、 そんな事ってできるのだしょうか?
Sheet1 Sheet2 A B A B 1 いちご 580 1 いちご 580 2 みかん 2 りんご 670 3 りんご 670 3 メロン 2,500 4 すもも 4 5 メロン 2,500 5 6 ぶどう 6
オートフィルタで空白以外を抽出して、それをコピーして 別シートに貼り付ける。 以上をマクロの記録する。 でどうでしょうか? ということでさっそく記録してみましたぁ。 Option Explicit Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2005/4/20 ユーザー名 : SoulMan '
'
Selection.AutoFilter Selection.AutoFilter Field:=2, Criteria1:="<>" Selection.CurrentRegion.Select Selection.Copy Sheets("Sheet2").Select ActiveSheet.Paste Application.CutCopyMode = False End Sub (SoulMan)
私は数式で。 Sheet2のA1に =IF(COUNT(Sheet1!$B$1:$B$10)<ROW(),"",INDEX(Sheet1!A$1:A$10,SMALL(IF(Sheet1!$B$1:$B$10<>"",ROW($A$1:$A$10)),ROW()))) でCtrl+Shift+Enterで配列数式にします。 必要範囲にコピーします。 (ケン)
返事が遅れてしまいました。 値が直接流れる方が都合がよかったので、ケンさんの数式で挑戦したところ、 例題通りだと うまくいくんですが、実際のワークグックで応用すると 範囲とか抽出先のセル値が違うので、うまくいきません(ToT) レベルが低くて申し訳ないのですが、数式の意味を教えてほしいのです。 お願いしますm(__)m (ピョン)
横から失礼します。ケンさんの式をちょっとだけ変えてみます。
=IF(COUNT(Sheet1!$B$1:$B$10)<ROW(A1),"",INDEX(Sheet1!A$1:A$10,SMALL(IF(Sheet1!$B$1:$B$10<>"",ROW($A$1:$A$10)),ROW(A1)))) ~~~~ ~~~~~~~~~~~~~~~ ~~~ ROW(A1)・・・括弧の中にA1を追加しました。 $B$1:$B$10はデータの入っている範囲を指定しますが、 ROW(A1)は常にこのまま入れます。(いつでも1から始まるように) この式が1行目に入っているなら、ケンさんの式のようにA1を省略しても同じ結果になります。
ROW($A$1:$A$10)のところは$B$1:$B$10とおなじ大きさで、$A$1から指定します。 例えば、$B$11:$B$30だったら、$A$1:$A20といった感じに。(いつでも1からnまでの数になるように) ただし、Sheet1!A$1:A$10 のほうは、実際にデータの入っている範囲です。 同じ「A$1:A$10」ですが、意味が違いますから。
といったことで、できるのではないでしょうか・・・たぶん? もしうまくいかなかったら、ケンさんに再登場をお願いします。 (sato)
satoさん、ありがとうございます。土日がお休みで、今やっと見ることができました。 なんとなくですが、意味がわかって抽出することができました〜♪ ところが、問題点がでてきました。 金額の列は、Sum(Sheet3:Sheet10!B1)というような数式になっていて、 0が入ってしまっているため、全てが抽出されてしまいます(><) 質問する時に最初から書いておくべきでした。ごめんなさい。 そんな時はどうしたらいいのでしょう? (ピョン)
$B$1:$B$10<>0としたらどうですか。 IF(COUNT(Sheet1!$B$1:$B$10)<ROW(A1)この部分もCOUNTIFにかえて0以外の物をカウント します。 (ケン)
できました。初歩的な事なのにお恥ずかしい限り… ありがとうございました。 また宜しくお願いします。 (ピョン)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.