自分なりに調べてみたのですが、分からず…
お分かりになる方がいらっしゃいましたら、教えていただけますでしょうか。
Sheet1に、元となるデータを入力しています。この入力は案件が増えるごとに行が増えていきます。
A B C D E
1 ○ 魚 500 野村
2 × 肉 600 中村
3 ○ 野菜 700 富田
4 × その他 900 小林
A列が○の案件のみ、Sheet2に列ごとコピーを自動で行うようにしたいです。
調べたところIF関数で出来るかもしれないと思っているのですが、
「=IF(B1:B5="○",=Sheet1!A1,""」
では出来ませんでした。
そもそも、IF関数を使うのが間違いでしょうか?
また、もしIF関数の場合、「条件に見合わなかった時は何もしない」という組み方はどのようにすればいいのでしょうか?
調べ方が悪いのかもしれないのですが、これ以上調べられなかったので…
お分かりになる方、どうぞ宜しくお願い致します。
No.1
- 回答日時:
IF関数を使ってできるのは、Sheet1と少なくとも同じ行数・列数のSheet2の表に、○行はデータが表示され、×行は空白という程度の抽出です。
B列の何行目に○が現れるのか分からない状態でSheet2に○の行だけを自動抽出することはできません。
一番簡単なのは、オートフィルタでSheet1 B列の○のみ表示させてコピーし、Sheet2にペーストする方法だと思います。
ご回答をいただき、有難うございます。
>一番簡単なのは、オートフィルタでSheet1 B列の○のみ表示させてコピーし、Sheet2にペーストする方法だと思います。
確かにその通りなのですが、実際にこのExcelを見るのは全くPCに詳しくない方(コピー&ペーストでも無理!)ばかりなので、自動的に表示されるように組み込んでおきたい、という意図があります。
説明が不足しており申し訳ないです。
やはり難しいでしょうか・・・?
何かよい方法があれば良いのですが・・・
No.2
- 回答日時:
今説明されている文だけでは、satonaka55さんがどんな目的のためにExcelを加工しようとしているのか、分からないです。
1つのExcelファイルをたくさんのPCアレルギーな人々が見るのか?
その場合、ファイルは共有サーバに上げるのか、メール配信でもするのか、PC自体が共有なのか!?
ファイルを見る人たちは一切Excelを編集できないのに、案件が増えるごとに行が増えていくのはナゼ?
○の行だけになっていれば、過去の案件も全部表示されていていいのか?
コピーもしないで、Sheet1にいつもオートフィルタをかけて保存しといてやればいいじゃん、という気もしますけど。
maruikamodさん
ご回答、どうも有難うございます。
説明が不足しており、申し訳ないです。
目的に関してですが、「PCにアレルギーはないが、Excelについての知識がない(見ることは出来るが、足し算引き算も出来ず「フィルタって何?」という方々)向けに、必要な情報だけを見れるようにしたい」です。
>1つのExcelファイルをたくさんのPCアレルギーな人々が見るのか?
→10人程度の人が見ます。
見るのは上記に記載したような、Excelに詳しくない方々です。
>その場合、ファイルは共有サーバに上げるのか、メール配信でもするのか、PC自体が共有なのか!?
→共有サーバに上げます。メール配信はしません
>ファイルを見る人たちは一切Excelを編集できないのに、案件が増えるごとに行が増えていくのはナゼ?
>案件が増えるごとに行が増えるのは、見るだけの人とは別に、案件を書き込む係りが私を含め合計3名いるからです。
>○の行だけになっていれば、過去の案件も全部表示されていていいのか?
→はい。○であれば、過去のものも見れて構いません。
回答になっていますでしょうか?
No.3ベストアンサー
- 回答日時:
こんにちは。
Excelで自動処理を行う場合は、マクロ(VBA)を使用する方法もあります。
マクロの使用方法、作成手順等については、下記サイトをご参照下さい。
■参考サイト
Excelでお仕事!「VBA基本」
http://www.asahi-net.or.jp/~ef2o-inue/menu/menu0 …
Excel(エクセル)VBA入門
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/i …
以下は、今回の処理を行うマクロの一例です。
このマクロは、シート2に作成した[コマンドボタン]が押された時に実行され、
シート1のデータから、"○"のデータを抽出して、シート2にコピーします。
■マクロの作成手順
1)シート2にマクロ実行用の[コマンドボタン]を作成します。
・「コントロールツールボックス」のコマンドボタンを貼り付けます。
2)VBE(Visual Basic Editor)を起動します。
3)VBE上で、シート2のコード画面に下記マクロを貼り付けます。
4)VBEを閉じて、一旦、Excelブックを保存します。
■マクロ例
注)下記のマクロは、シート2のコードモジュールに実装して下さい。
===↓ここから===========
'== [データ抽出]ボタンのクリック時処理 ==
Private Sub CommandButton1_Click()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim rng As Range
Dim nRowSta1 As Long
Dim nRowEnd1 As Long
Dim nRowSta2 As Long
Dim nRowCnt As Long
Dim nRowNum As Long
Dim nClmNum As Long
'シートの取得
Set sh1 = ThisWorkbook.Worksheets("Sheet1")
Set sh2 = ThisWorkbook.Worksheets("Sheet2")
'シート1のデータ有無チェック
nRowSta1 = 2
nRowEnd1 = sh1.Range("B" & sh1.Rows.Count).End(xlUp).Row
If nRowEnd1 < nRowSta1 Then
MsgBox "抽出元のデータがありません。"
Exit Sub
End If
'シート2の既存データをクリア
nRowSta2 = 2
nRowNum = sh2.Rows.Count - nRowSta2 + 1
nClmNum = 5
sh2.Range("A" & nRowSta2).Resize(nRowNum, nClmNum).ClearContents
'データ抽出
nRowCnt = 0
For Each rng In sh1.Range("B" & nRowSta1 & ":B" & nRowEnd1)
'データの可否マークが"○"のものを抽出してシート2に転送
If rng.Text = "○" Then
sh2.Cells(nRowSta2 + nRowCnt, 1).Value = nRowCnt + 1
sh2.Cells(nRowSta2 + nRowCnt, 2).Value = rng.Offset(0, 0).Value
sh2.Cells(nRowSta2 + nRowCnt, 3).Value = rng.Offset(0, 1).Value
sh2.Cells(nRowSta2 + nRowCnt, 4).Value = rng.Offset(0, 2).Value
sh2.Cells(nRowSta2 + nRowCnt, 5).Value = rng.Offset(0, 3).Value
nRowCnt = nRowCnt + 1
End If
Next
'オブジェクトの解放
Set sh1 = Nothing
Set sh2 = Nothing
'確認メッセージ表示
If nRowCnt > 0 Then
MsgBox nRowCnt & "件のデータを抽出しました。"
Else
MsgBox "該当するデータがありませんでした。"
End If
End Sub
===↑ここまで===========
FarEyesさん
ご回答をいただき、有難うございます。
マクロですか!
全くマクロを触った事がないので…
ただ、とても丁寧に回答していただいているので、チャレンジしてみようと思います。
こんな丁寧に教えていただいて感激です。
頑張って挑戦してみます。
どうも有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
VBAで CTRL+HOMEの位置へ移動...
-
エクセル 縦に長い表の印刷時...
-
時間帯の重複を除いた集計について
-
複数シートのデータを行列を入...
-
EXCEL グラフ作成 データの範...
-
【エクセルマクロ】複数シート...
-
【マクロ】同じフォルダ内にあ...
-
マクロでの値貼り付けと参照シ...
-
Excelのセル横にリスト表示をす...
-
EXCELで2つのファイルから重複...
-
他のシートの一番下の行データ...
-
エクセルで着日ごとのシートを...
-
エクセル2010 別シートへのデー...
-
エクセルカレンダーに自動で来...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
EXCELで2つのファイルから重複...
-
VBAで CTRL+HOMEの位置へ移動...
-
トランジスタの選び方
-
Excelで日付変更ごとに、自動的...
-
他のシートの一番下の行データ...
-
エクセル マクロ "特定の日付...
-
【エクセルマクロ】複数シート...
-
エクセル VBA VLOOKUP
-
時間帯の重複を除いた集計について
-
エクセル 縦に長い表の印刷時...
-
エクセルで名簿を50音で切り分ける
-
Excelマクロ 差分抽出の方法が...
-
エクセルのカメラ機能について
-
EXCEL 複数行のデータを1行にま...
-
Excel 売上管理シートに入力し...
おすすめ情報