No.2ベストアンサー
- 回答日時:
こんにちは。
No.1704596を見てきました。
「フラグが立っている」というプログラミング用語を使っていながら、単に、セルに値があるかどうかですと、意味が伝わってきませんね。用語の使い方が間違っていませんか?
「ひとつのセルでも何か入力されておれば」と「フラグが立てること」とは意味が違いますね。単に、A4~A10 に値が入力されていたら、別のシートに写せばよいのだと思います。
補助列を使って、
B4:B10
=IF(COUNTIF($A$4:$A$10)>0,TRUE,FALSE)
で、TRUE をオートフィルタで抽出し、それをコピーします。そうでないなら、VBAのほうが楽でしょうね。
No.4
- 回答日時:
No.3のmatsu_junです。
> 削除したいのは、フラグ範囲のセルA4からA10に何も入力がない場合は、A1からA15は別のシートにコピーせず、
> B4からB10の間に1つでも何か入力されておれば、B1からB15を別のシートにコピーする
私の解釈と異なるのは、A列がタイトル列なのか(私の解釈)データ列なのか(taro0713様の解釈)という一点だけだと思うのですが。
下の問いにお答えくださいませ。なお、設問6以外は、以降私が回答するために必須の項目です。
1) 元のデータというのは、ある一つのブックのある一つのシートの中に入っているものですか?
そうであればそのシート名を、そうでなければそれぞれのシート名を教えてください。
2) 元のシートには、一つ目のデータがAの列(A1~A15)、二つ目のデータがBの列(B1~B15)、三つ目のデータがCの列(C1~C15)
以降D列、E列、F列・・・と入っていっているものですか?
もしくは複数のシートのA列だけを使っているのですか?
3) 移動先のシートは、元データの入ったブックと同じブック内でよろしいですか?「はい」か「いいえ」でお答えください。
4) 移動先のシートは1つでよろしいのですか?それとも例えばA4~A10のいずれかに何か入力されていた場合にA1~A15を
元データのあるシートとは別のシート(仮にSheetA)にコピーし、B4~B10のいずれかに何か入力されていた場合にB1~B15を
元データとSheetAとも違うシート(仮にSheetB)にコピーするといったことですか?
いずれにしても移動先のシート名(もしくはシート名のリスト)をお教えください。
5) 移動先の列は、私がNo.3で答えているように右詰めしていくのでしょうか?それとも仮にA1~A15とB1~B15のデータが
コピー対象でない(AとBのフラグが立っていない)場合でC1~C15のデータがコピー対象だった場合は
移動先のシートのC列にコピーすればよいのですか?
6) その他、No.3の私の解釈の違いについて、私がここで設問にあげなかったことがありましたらお教えください。
以上、よろしくお願いします。
No.3
- 回答日時:
taro0713さん、こんにちは。
一応作業行を利用すれば関数で解決できないこともないです。Sheet1上の
(注:等幅フォント(MSゴシックなど)で見てください)
┃A ┃B ┃C ┃D ┃E ┃F ┃G ┃H ┃I ┃J ┃
━━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━╋
1 ┃住所│BB│CC│DD│EE│FF│GG│HH│II│JJ│
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
2 ┃名前│b │c │d │e │f │g │h │i │j │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
3 ┃名前│b │c │d │e │f │g │h │i │j │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
4 ┃フ1│フb1│ │ │ │フf1│ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
5 ┃フ2│ │フc2│ │ │ │ │ │ │フj4│
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
6 ┃フ3│ │ │ │ │フf3│ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
7 ┃フ4│ │ │ │ │フf4│ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
8 ┃フ5│フb5│ │ │フe5│ │ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
9 ┃フ6│ │フc6│ │ │ │ │ │フi6│ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
10 ┃フ7│ │フc7│ │ │フf7│ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
11 ┃デ1│B1│C1│D1│E1│F1│G1│H1│I1│J1│
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
12 ┃デ2│B2│C2│D2│E2│F2│G2│H2│I2│J2│
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
13 ┃デ3│B3│C3│D3│E3│F3│G3│H3│I3│J3│
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
14 ┃デ4│B4│C4│D4│E4│F4│G4│H4│I4│J4│
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
15 ┃デ5│B5│C5│D5│E5│F5│G5│H5│I5│J5│
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
から、フラグの一つも入っていない列(D、G、H列)を無視した残りの列(A~C、E、F、I、J列)を
Sheet2に左寄せして、下図のように記入すればよろしいのでしょうか?
┃A ┃B ┃C ┃D ┃E ┃F ┃G ┃H ┃I ┃J ┃
━━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━╋
1 ┃住所│BB│CC│EE│FF│II│JJ│ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
2 ┃名字│B │C │E │F │I │J │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
3 ┃名前│b │c │e │f │i │j │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
4 ┃フ1│フb1│ │ │フf1│ │ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
5 ┃フ2│ │フc2│ │ │ │フj4│ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
6 ┃フ3│ │ │ │フf3│ │ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
7 ┃フ4│ │ │ │フf4│ │ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
8 ┃フ5│フb5│ │フe5│ │ │ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
9 ┃フ6│ │フc6│ │ │フi6│ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
10 ┃フ7│ │フc7│ │フf7│ │ │ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
11 ┃デ1│B1│C1│E1│F1│I1│J1│ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
12 ┃デ2│B2│C2│E2│F2│I2│J2│ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
13 ┃デ3│B3│C3│E3│F3│I3│J3│ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
14 ┃デ4│B4│C4│E4│F4│I4│J4│ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
15 ┃デ5│B5│C5│E5│F5│I5│J5│ │ │ │
━━━╋──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼
(A列はタイトル列とし、実際のデータはB列以右に入っているとします。)
でしたらまずは問題文を整理しますね。
「縦1列に1レコードを記録した表がSheet1上にあります。レコードの要素としては、
1行目:住所、2行目:名字、3行目:名前、4~10行目:フラグ1~フラグ7、
11~15行目:データ1~データ5となっています。
このうちフラグ1~フラグ5のいずれかのフラグが立っている(セルに値の記入がある)レコード(列)を摘出し、
それを別シート(Sheet2)に左詰めで転載するにはどのような関数を用いればよいでしょうか。
なおA列はタイトル列とし、Sheet1にもSheet2にもあるものとします。」
作業行として、転記先(Sheet2)の16行目、17行目を利用します。
1)セルB16に「=NOT(COUNTA(Sheet1!B4:B10))」と記入し、このセルの右下(マウスカーソルが+に変化するところ)で
マウスの左ボタンを押しながら、セルIV16までドラッグします。
2)セルB17に「=MATCH(FALSE,OFFSET($B$16,0,A17,1,1):$IV$16,0)+A17」と記入し(Sheet2のセルA17には値を入れないで
下さい)、1)同様セルIV17までドラッグします。
3)セルB2に「=IF(ISERROR(B$17),"",OFFSET(Sheet1!$A1,0,$B$17,1,1))」と記入し、セルB15までドラッグします。
4)セルB2からB15それぞれの式の「$B$17」を「B17」に書き換えてください。
5)セルB2からB15までを選択し、セルB15の右下をつまんでセルIV15までドラッグします。
6)お好みに応じて、Sheet2の16行目、17行目を非表示にします。
一応これで完成しますが、Sheet2のセルB2~IV17まで数式が記入されますのでデータ量が大きくなってしまい、
お勧めは致しかねます。
定型作業で行う方法
オートフィルタを利用して必要なデータを選択(あるいは不要なデータを削除)すればよいのですが、
taro0713様のデータの場合、オートフィルタを利用するための行列の並びが逆になっているので
そのままでは利用できません。よって、一度別のシートにtaro0713様の表を行列入れ替えてコピーし、
作業を行うのが適当で、上記の関数を利用する方法よりもデータ量が少なく済みます。
1)作業シートを仮に作ります(これをSheet3とします)
2)Sheet1の表を選択し、コピーします。
3)Sheet3のセルA1を選択し、右クリック-形式を選択して貼り付け(S)を選びます。
4)画面に表示されたメニューから、「行列を入れ替える(E)」にチェックをつけて「OK」をクリックします。
5)そのままの状態(Sheet3上で表が選択された状態)で、データ(D)-フィルタ(F)-オートフィルタ(F)を選択
6)D1(フラグ1)右のボタンをクリックして、(空白セル)を選択、以降J1(フラグ7)まで同様の操作を行います。
7)Ctrlキーを押しながらAを押してシート全体を選択した後、Ctrlを押しながらGを押します。
8)表示された「ジャンプ」ウィンドウから、「セル選択(S)」ボタンを押します。
9)表示された「選択オプション」ウィンドウから、「可視セル(Y)」にチェックし、OKボタンを押します。
10)メインメニューの「編集(E)」から、「行の削除(D)」を選択します。
11)すると、どこかのフラグにチェックが入ったデータだけが残ることになります。
12)残ったデータを選択し、コピーします。
13)Sheet2のセルB1を選択し、右クリック-形式を選択して貼り付け(S)を選びます。
14)画面に表示されたメニューから、「行列を入れ替える(E)」にチェックをつけて「OK」をクリックします。
お好きな方法をご選択ください。「定型作業で行う方法」をマクロ記録すると自動で出来上がります。
本当はWorkbook_SheetChangeイベントを利用してVBAを動作させるのが最も便利なのですので、
もしVBAでもいいのであれば、一度ご連絡くださいませ。
この回答への補足
説明不足で申し訳ありません。
>フラグの一つも入っていない列(D、G、H列)を無視した残りの列(A~C、E、F、I、J列)を
Sheet2に左寄せして、下図のように記入すればよろしいのでしょうか?
ではありません。
削除したいのは、フラグ範囲のセルA4からA10に
何も入力がない場合は、A1からA15は別のシートにコピーせず、B4からB10の間に1つでも何か入力されておれば、B1からB15を別のシートにコピーする・・・と、いうことなのです。
わかりにくくて申し訳ありません。
No.1
- 回答日時:
前の質問で補足要求したものです。
焼きなおしましたね。私の例示でも上げてもらえれば、質問の意味が判りやすかったのではないかと思いましたが。
回答を考えようかなと思っていたところ締め切られたので、下記例は本質問とやや異なっていますが、修正してください。
imogasi方式でやれます。
これ以外の方法でも、関数だと相当難しいと思う。
-----前提整理
(1)A列で10行単位に、何かに関して、データが記録されている
(2)次の10行との間に余白行はいれず、詰めるものとする。
(3)第1ブロック(A2:A11)で言えば、A2苗字、A3名前、A4-A8のはフラグ
(4)A9,A10、A11は住所とします。
(5)第4-第8行に、どこでも最小1行、1を入れると、そのブロック
10行が表示対象行になる。以下「対象行」ということにする。
----対象行に連番を振る
Sheet1において
D2に
=IF(COUNTIF(OFFSET($A$2,INT((ROW()-2)/10)*10+2,0,5,1),"1")>=1,MAX($D$1:D1)+1,"")
を入れて、最下行まで式を複写する。
そして
A2,A3、A9,A10,A11
A12,A13,A19,A20,A21
A22,A23,A29,A30,A31
・・・
に1を入れて、表示が変化しないことを確認する。
逆に、上記以外の
A4-A8
A14-A18
・・・
に1箇所でも1を入れると、そのブロックの行の全てに、
通し番号が振られることを確認する。
ーーーー
あとはimogasi方式でSheet2に連続番号を振った行のみデータを写します。
Sheet2のA2に
=INDEX(Sheet1!$A$1:$C$100,MATCH(ROW()-1,Sheet1!$D$1:$D$101,0),COLUMN())
と入れてC列まで+ハンドルを引っ張る・
A2:C2を範囲指定して,
C3で+ハンドルを出し、づっとブロック数x10行下まで引っ張る。
第2と第4ブロックを指定したときの例
1b1y1
1b2y2
0b3y3
0b4y4
1b5y5
0b6y6
0b7y7
1b8y8
1b9y9
1b10y10
1d1u1
1d2u2
0d3u3
1d4u4
0d5u5
0d6u6
0d7u7
1d8u8
1d9u9
1d10u10
#N/A#N/A#N/A
#N/A#N/A#N/A
#N/Aを出さないようにすることは、省略。息切れした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
フラグを立てた物のみを別シートへ反映したい
Excel(エクセル)
-
【エクセル関数】特定のフラグのデータだけ抜き出す方法について
その他(Microsoft Office)
-
【エクセル関数】特定のフラグのデータだけ抜き出す方法について
Excel(エクセル)
-
-
4
ExcelのIF関数によるフラグ立てについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
エクセルを利用して、日計と累...
-
チュロス袋の代用
-
エクセル ○印がついている行を...
-
エクセルでif関数を使って、別...
-
2つのシート間での重複データ...
-
毎日の日計を別シートに自動で...
-
Excelで複数のシートに列のグル...
-
エクセルのシートをコピーして...
-
エクセルの複数のセルを一括で...
-
A1セルに入力したら、入力時間...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
Excelの入力規則で2列表示したい
-
リンク元の日付が空白の時リン...
-
Excelで同じセルに箇条書きをし...
-
excelでSUBTOTAL関数を設定した...
-
複数の文字列のいずれかが含ま...
-
エクセル ボタンを押すとセルの...
-
Excelの条件付き書式で、計算式...
-
エクセルのセルが縦方向にのびる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
チュロス袋の代用
-
エクセルを利用して、日計と累...
-
エクセルのシートをコピーして...
-
指定した条件でTRANSPOSE関数を...
-
毎日の日計を別シートに自動で...
-
エクセルで1行だけ数式が反映さ...
-
2つのシート間での重複データ...
-
エクセルで○のついた項目を抽出
-
エクセルでフラグがたっている...
-
EXCELで受験票を作成したい(名...
-
エクセルで2つのシートに同じ名...
-
エクセル ○印がついている行を...
-
条件にマッチする行を抽出するV...
-
excel シート1の奇数(偶数)...
-
複数シートのセルの 記号の数...
-
EOMONTH関数の代わり
-
Excelで複数のシートに列のグル...
-
VBA 縦のデータを横にするコード
-
エクセルでシート間の相対参照
おすすめ情報