
色々と前の投稿を見ましたが、どうしても答えが分からず質問させてもらいます!!
1から31(1ヶ月)のセルの中で、毎月ランダムにたくさんのアルファベットが入ります。
その中で、「a」というアルファベットのみを別シートに飛ばし、その別シート上では「1」として表記したいです。さらに、その「a」が入った日付も一緒に別シートに飛ばしたいです。
一ヶ月の中で「a」が入るのは2~5回ぐらいなので、別シートには7日分の表を用意するつもりです。
ただ、その1ヶ月の中でどこに「a」が入るかは決まっていません。
日付も全く未定なので、「a」が入ったら別シートに1として、さらに日付が入ったセルの数字も一緒に飛ばす。
マクロは全く分からないので、出来れば関数が良いです!!
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
こんばんは!
>マクロは全く分からないので、出来れば関数が良いです!!
というコトですので、一例です。
↓の画像のような配置になっているとします。
Sheet2のA2セルに
=IFERROR(INDEX(Sheet1!A$1:A$50,SMALL(IF(Sheet1!B$1:B$50="a",ROW(A$1:A$50)),ROW(A1))),"")
これは配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → A2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。
B2セル(配列数式ではありません)には
=IF(A2="","",1)
という数式を入れ A2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピー!
これで画像のような感じになります。
※ お望みの方法でないVBAでもやってみました。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト
Sub Sample1() 'この行から
Dim lastRow1 As Long, lastRow2 As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
lastRow1 = .Cells(Rows.Count, "A").End(xlUp).Row
lastRow2 = wS.Cells(Rows.Count, "A").End(xlUp).Row
Application.ScreenUpdating = False
If lastRow2 > 1 Then
Range(wS.Cells(2, "A"), wS.Cells(lastRow2, "B")).ClearContents
End If
.Range("A1").AutoFilter field:=2, Criteria1:="a"
If Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
Range(.Cells(2, "A"), .Cells(lastRow1, "A")).SpecialCells(xlCellTypeVisible).Copy wS.Range("A2")
lastRow2 = wS.Cells(Rows.Count, "A").End(xlUp).Row
If lastRow2 > 1 Then
Range(wS.Cells(2, "B"), wS.Cells(lastRow2, "B")) = 1
End If
End If
.AutoFilterMode = False
Application.ScreenUpdating = True
End With
End Sub 'この行まで
次に画面左下にある「Sheet1」のSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻りSheet1のB列にデータを入力してみてください。
Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim lastRow1 As Long, lastRow2 As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
Call Sample1
End Sub 'この行まで
これでも同じ結果になると思います。
※ VBAの場合はB列の数式が消えてしまいます。m(_ _)m

No.4
- 回答日時:
D4 1
E4 =if(countif(sheet1!B$4:B$34,"a")<d4,"",index(sheet1!a:a,small(index(row(sheet1!B$4:B$34)+999*(sheet1!B$4:B$34<>"a"),),d4)))
F4 =if(e4="","",1)
自動的に転記するためには、上のように、難しい数式が必要です。それよりも、単にオートフィルタで絞り込むだけにとどめるのが通常の手法です。自動にする必要性があまりないケースが多いので。別シートに保存したければ、絞り込んだ状態でコピペしてください。
なおセルに数式をセットするだけではこのように難しいのですが、マクロなら初級レベルでもできる課題です。

回答ありがとうございます!!
すごい詳しく実際に作ってもらえてありがたいです!
やっぱり数式だとすごい複雑ですね~。
マクロをこれから覚えていこうと思います。
ありがとうございました!
No.3
- 回答日時:
元データのレイアウトがわからないのですが、Sheet1のA2セル以下に日付、B2セル以下に「a」という文字が入力されているなら、別シートのB2セルに以下の式を入力し下方向にオートフィルします。
=IF(COUNTIF(Sheet1!$B$2:$B$32,"a")<ROW(1:1),"",1)
同様にA2セルには以下の式を入力して下方向にオートフィルします。
=IF(B2="","",INDEX(Sheet1!A:A,SMALL(INDEX((Sheet1!$B$2:$B$32<>"a")*100+ROW($2:$32),),ROW(1:1))))

No.2
- 回答日時:
「別シートに飛ばす」ってハヤリなの?
1)オートフィルタ掛けて、「aを含む」を表示させ、
2)セル選択で「可視セル」のみ選択してコピーして、
3)別シートヘペースト
ではダメですか?
No.1
- 回答日時:
>マクロは全く分からないので、出来れば関数が良いです!!
「aを飛ばす」という言葉が、
別シートに”1”を記入して、元のシートから”a”を削除するという意味なら
関数では不可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) Excel シート複数 金額日計表と日付 簡単にシートコピーしたら前日の残高と日付を変更させたい 1 2022/07/15 22:10
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) Excelについて 1 2023/03/06 10:26
- Excel(エクセル) 添付写真上のExcelシートのように時間と曜日ごとに担当者が振り分けられているシートがあります。 例 1 2023/03/08 13:02
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】1回目の実行後、2...
-
エクセル内に読み込んが画像の...
-
Excelのメニューについて
-
Excelで作成した出欠表から日付...
-
Excel 偶数月の15日(土日祝...
-
Excelの数式について教えてくだ...
-
勤務外時間を出す表が作りたい
-
VLOOKUP FALSEのこと
-
エクセルの数式について教えて...
-
【マクロ】参照渡しについて。...
-
Excel 日付の表示が直せません...
-
Excelの条件付書式について教え...
-
マクロを実行すると、セル範囲...
-
【マクロ】参照渡しとモジュー...
-
【マクロ】シート追加時に同じ...
-
Excelファイルを開くと私だけVA...
-
Excelのデーターバーについて
-
エクセルの設定、特定の列以降...
-
別のシートの指定列の最終行を...
-
エクセル 同じ行の隣り合う数字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】重複する同じ行を、...
-
Excelの条件付き書式のコピーと...
-
vba 印刷設定でのカラー印刷と...
-
VBA の単語の意味を教えて下さい。
-
Excel 日付の表示が直せません...
-
エクセル 同じ行の隣り合う数字...
-
エクセル条件付き書式について。
-
エクセルの数式につきまして
-
ファイル名の変更
-
エクセル 数字のみ抽出につて
-
Excelの開始ブックを固定したい...
-
エクセルの数式について教えて...
-
エクセルのセルをクリックする...
-
=INDIRECT(RIGHT(CELL("filenam...
-
エクスプローラーで見ることは...
-
Excelの関数で質問です
-
至急お願いいたします 屋上の備...
-
エクセルでセルに入力する前は...
-
関数を教えて下さい
-
Excel 関数での質問です
おすすめ情報