
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルのマクロを教えてください。 2 2022/03/28 13:14
- Excel(エクセル) 名前と日付が一致する箇所にフラグを立てる関数が知りたいです 4 2022/08/11 02:24
- MySQL SQLでカラムを追加し、条件に合致した場合にフラグ(レコード)を付与する方法 2 2022/05/18 23:54
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
おすすめの美術館・博物館、教えてください!
美術館・博物館が大好きです。みなさんのおすすめをぜひお聞きしたいです。
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
フラグを立てた物のみを別シートへ反映したい
Excel(エクセル)
-
【エクセル関数】特定のフラグのデータだけ抜き出す方法について
その他(Microsoft Office)
-
【エクセル関数】特定のフラグのデータだけ抜き出す方法について
Excel(エクセル)
-
-
4
ExcelのIF関数によるフラグ立てについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
2つのシート間での重複データ...
-
エクセルのシートをコピーして...
-
エクセルで1行だけ数式が反映さ...
-
指定した条件でTRANSPOSE関数を...
-
EOMONTH関数の代わり
-
エクセルを利用して、日計と累...
-
エクセルでif関数を使って、別...
-
Excelで複数のシートに列のグル...
-
EXCELで受験票を作成したい(名...
-
エクセルで○のついた項目を抽出
-
日付順で縦に並んでいるデータ...
-
エクセル 並べ替え(あいうえお...
-
エクセル(横串計算)
-
エクセル ○印がついている行を...
-
Excel VBA 12ヶ月分のシート作成
-
毎日の日計を別シートに自動で...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
A1セルに入力したら、入力時間...
-
エクセルの複数のセルを一括で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
エクセルのシートをコピーして...
-
2つのシート間での重複データ...
-
指定した条件でTRANSPOSE関数を...
-
エクセルを利用して、日計と累...
-
エクセルで1行だけ数式が反映さ...
-
エクセルで○のついた項目を抽出
-
毎日の日計を別シートに自動で...
-
エクセルでフラグがたっている...
-
EXCELで受験票を作成したい(名...
-
条件にマッチする行を抽出するV...
-
エクセルで2つのシートに同じ名...
-
複数シートのセルの 記号の数...
-
チュロス袋の代用
-
エクセル ○印がついている行を...
-
秘書検定準1級のアドバイスシー...
-
Excelで複数のシートに列のグル...
-
excel シート1の奇数(偶数)...
-
フライパンで魚を焼く時のフラ...
-
エクセルでif関数を使って、別...
おすすめ情報