【復活求む!】惜しくも解散してしまったバンド|J-ROCK編 >>

はじめまして。
主シートに、登録日を含む顧客情報テーブルを用意しています。
指定期間内での合計や、該当データの個数を表す関数は見つけられるのですが、
「純粋に該当レコードの指定項目のみを別シートに表示する」方法がどうも分かりません。

例えば、6月20日から7月5日までの期間で、「A,B,S」会員のうち「S」会員の情報を抽出したい。
といった内容です。

意味は通じましたでしょうか?
よろしくお願いいたします。

A 回答 (4件)

こんにちは!



具体的な配置が判らないので、やり方だけ・・・
↓の画像のように元データはSheet1にあり、Sheet2のA2セルに「氏名」、B2セルに「開始日」、C2セルに「終了日」を入力すると
一致するデータを表示するようにしてみました。
尚、Sheet2の4行目項目名は表示したい項目名をいれます。

画像ではSheet2のA5セルに
=IFERROR(INDEX(Sheet1!$A$1:$G$1000,SMALL(IF((Sheet1!$A$1:$A$1000=$A$2)*(Sheet1!$B$1:$B$1000>=$B$2)*(Sheet1!$B$1:$B$1000<=$C$2),ROW($A$1:$A$1000)),ROW(A1)),MATCH(A$4,Sheet1!$1:$1,0)),"")

配列数式なのでCtrl+Shift+Enterで確定!(←必須★)しA5セルのフィルハンドルd列方向にコピー!
A5セルの表示形式を好みの表示形式にしておき
A5~C5を範囲指定 → C5セルのフィルハンドルで下へコピー!
これで画像のような感じになります。

あとは、A2~C2セルのデータを入れ替えるだけで
一致するデータが表示されます。m(_ _)m
「excel 指定期間内での条件抽出」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます。

今後への糧とするために、tom04さんが示していただいたような形を求めていました。
今すぐ試すことはできませんが、参考にさせていただきます。
これから自動車移動になります、また改めてご連絡いたします。

お礼日時:2018/09/07 17:04

質問者さんのレベルが分からないので、作業用の列や行を設けて、その上で抽出の条件を作ることを勧めます。



A列に日付、B列にランクが入力されているなら、C列以降の空いている列に作業用の列を作ります。(作業用の列を挿入してもOK)
まず、
C列にA列の日付が6月20日以降であれば「1」を、該当しなければ「0」を表示する数式を作ります。
次に、
D列にA列の日付が7月5日以前であれば「1」を、該当しなければ「0」を表示する数式を作ります。
更に、
E列にB列が「S」なら「1」を、該当しなければ「0」を表示する数式を作ります。
あとは
F列にC列の値とD列の値とE列の値を掛けた結果を上のセルの値と足していきます。
最後に
F列の値が「1」以上のデータを順番に拾うだけです。

F列には
 0
 0
 1
 1
 1
 2
 3
 3
 4
 4
 4
 5
のように表示されますが、
F列の上から見て一番はじめに「1」や「2」が出た行を ”MATCH” 関数で簡単に拾えます。

さあ。この手順の中で何が分かりませんか。

・・・
実は ”配列数式”一発でできるんですけど、
意味が分かっていないと条件が変わったときに対応できないでしょうから、こういった手順を踏んだ方法を説明させていただきました。
    • good
    • 0
この回答へのお礼

ありがとうございます。

今後への糧とするために、示していただいたような形を求めていました。
今すぐ試すことはできませんが、参考にさせていただきます。
これから自動車移動になります、また改めてご連絡いたします。

お礼日時:2018/09/07 17:05

別に直接表に抽出する必要はないでしょうし、抽出項目は選択できますよ。


一旦抽出用の表を作ってそれを実際の表で参照するなりコピペするなりした方が間違いも少なくていいと思いますけど。
まぁ、お好きに。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2018/09/07 15:57

フィルタオプションでいいと思いますよ。

    • good
    • 1
この回答へのお礼

迅速すぎるご返答大変ありがとうございました。
それも候補にはあったのですが、抽出結果は主テーブルの登録項目から数を減らした形になっていまして、その結果を「別紙」として添付するために、表示の形がある程度決まっているのですよ。
と、いうことなのです。
申し訳ございませんが、また良いお知恵があればよろしくお願いいたします。

お礼日時:2018/09/07 15:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qエクセルについて教えて下さい! シート1のA1のセルに、シート2のリストより文字列を探して入力したい

エクセルについて教えて下さい!

シート1のA1のセルに、シート2のリストより文字列を探して入力したいのですが、
シート2のリストがとても多く、似たような文字列がたくさんあります。
そのため、シート1のA1に何文字か入力すると、その文字が含まれた文字列がリストアップされて出てきて、選択できるようにしたいです。

例えば、シート1のA1に「りんごジュース」と表示させたい場合、「りんご」といれたら、シート2のリストにある、りんごジュース・青森りんご・りんご飴などのリストが出てきて、そのリストから「りんごジュース」を選択できる。

色々検索したのですが可能がどうかすらも分からなかったので、わかる方教えて頂ければ助かります(>_<)
宜しくお願いします!

Aベストアンサー

>リストから選んだら消えるようにするには難しいのですかね?

一番手っ取り早いのはSheet2のA列データを消去するコトですかね。
ただSheet1のチェンジイベントで別シートのデータ消去はできなかった記憶があります。
そうなると標準モジュールに手を加えなければなりませんので、
チェンジイベントでもとりあえずリスト候補の表示はしないコードにしてみました。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim c As Range
  If Target.Address = "$F$9" Then
   Set c = Worksheets("Sheet2").Range("A:A").Find(what:=Target, LookIn:=xlValues, lookat:=xlWhole)
    If c Is Nothing Then
     Call Sample1
     Target.Select
     SendKeys "%{DOWN}"
    End If
 End If
End Sub

※ プルダウンの表示は回避できますが、
もう一度右側▼をクリックするとSheet2のA列にデータが残っているため
再選択が可能になります。

この再選択もしないようにしたい場合は
最初に書いたように標準モジュールにSheet2のA列2行目以降のデータを消去するマクロを追加する必要があると思います。
そのマクロをChangeイベントで呼び出すくらいですかね。
※ ↑は未検証なので不具合が出たらごめんなさい。m(_ _)m

>リストから選んだら消えるようにするには難しいのですかね?

一番手っ取り早いのはSheet2のA列データを消去するコトですかね。
ただSheet1のチェンジイベントで別シートのデータ消去はできなかった記憶があります。
そうなると標準モジュールに手を加えなければなりませんので、
チェンジイベントでもとりあえずリスト候補の表示はしないコードにしてみました。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim c As Range
  If Target.Address = "$F$9" Then
   Set c = Worksheets("Sheet2...続きを読む

QExcel 数の数え方 種類の数を数えたい

Excelの質問です。同じ文字列が複数あった場合、それはいくつあっても1とカウントしたいのですが、なかなかうまくいかないので、お力を貸して下さい!

例として、添付画像のような表があったとします。
今回求めたいのは「色の種類」と「合計」です。

①「色の種類」は、その日に何種類の色を使用したか種類の数を求めたい

②「合計」は、1日に複数同じ色があってもそれは1と数えた状態で、すべての日数分の合計を求めたい

というものなのですが、どのような数式を使用すればよろしいでしょうか?
ご回答いただけると嬉しいです。
宜しくお願い致します!

Aベストアンサー

こんばんは!

一案です。
この質問限定の関数(ユーザー定義関数)を作ってみてはどうでしょうか?
(二つのユーザー定義関数を作ってみました)

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに↓のコードをコピー&ペースト

Function nikkei(myRng As Range) '//この行から//
 Dim cnt As Long, c As Range, myStr As String
  For Each c In myRng
   If InStr(myStr, c) = 0 Then
    cnt = cnt + 1
    myStr = myStr & c & ","
   End If
  Next c
   nikkei = cnt
End Function

Function goukei(myArea As Range, c As Range)
 Dim i, cnt As Long, myRng As Range
  For i = myArea(1).Row To myArea(myArea.Count).Row
   Set myRng = Range(Cells(i, myArea(1).Column), Cells(i, myArea(myArea.Count).Column))
    If WorksheetFunction.CountIf(myRng, c) > 0 Then
     cnt = cnt + 1
    End If
  Next i
   goukei = cnt
End Function '//この行まで//

Excel画面に戻り(VBE画面を閉じて)通常の関数と同じ使い方をします。

画像の配置では、まずF2セルに
=nikkei(B2:E2)

という数式を入れ下へフィル&コピー!
B9セルに
=goukei(B$2:E$5,A9)

という数式を入れ下へフィル&コピー!

これでもお望みの結果になると思います。m(_ _)m

こんばんは!

一案です。
この質問限定の関数(ユーザー定義関数)を作ってみてはどうでしょうか?
(二つのユーザー定義関数を作ってみました)

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに↓のコードをコピー&ペースト

Function nikkei(myRng As Range) '//この行から//
 Dim cnt As Long, c As Range, myStr As String
  For Each c In myRng
   If InStr(myStr, c) = 0 Then
    cnt = cnt + 1
    myStr = myStr & c & ","
   ...続きを読む

Qセル列のコピペから次回更新時の貼り付けで悩んでいます。 A B … E F G コード 算出 コード

セル列のコピペから次回更新時の貼り付けで悩んでいます。
A B … E F G
コード 算出 コード 算出値 算出値
00001 0.1 00001 0.1 ?
( =A2 ) (=B2)

ABCD列は上書きされ日々かわります。ABCD列はセットの算出値です。E、F列はコピペしております。
更新するのはコードと算出値セットです。更新されたコードに対してのみ表示されます。コード1000に対し、500ほどの更新なので昇順してもコピペだとずれがでてしまい、G列にうまく貼り付けれません。
コードに合わせたG列に貼り付けしたいのですが、うまくいかず悩んでいます。
ご教授のほどお願いいたします。

Aベストアンサー

現状どんなプログラムを書いてますか?

Qエクセル関数で 4県あって、1を押したら東京が2を押したら神奈川などいちいち東京とか打ち込まない方法

エクセル関数で
4県あって、1を押したら東京が2を押したら神奈川などいちいち東京とか打ち込まない方法ありますか⁉︎

Aベストアンサー

『データの入力規則』を使うのが簡単です。

◆手順 (添付図参照・・・図の番号と手順の番号は対応しています)
1.リストを空いているセルに記入します。 リストとは、東京、神奈川、・・・の表のことです。
2.入力したいセルを選択して、メニューから『データ』
3.『データの入力規則』
4.『データの入力規則』
5.入力値の種類のところで『リスト』を選択
6.元の値のところに、手順1で作成したリストのセル範囲を指定
7.『OK』

これで、▼印をクリックして、選択肢から選べるようになります。

Qエクセル リストと完全一致するセルに色をつける

シート1のA列とB列に
aaa ccc
bbb ggg
ccc kkk
ddd ooo
と言うリストがあって、A1〜A4はAチーム、B1〜B4まではBチームと名前を付けています
シート2にAチームのリスト4個が続いているものがあればセルを赤、Bチームのリスト4個が続いているものがあればセルを黄色に塗りたいです
AチームとBチームの中には同じ品番がある時もあります
条件付き書式で設定は出来るでしょうか?

Aベストアンサー

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル

 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4

 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5

 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

の4パターンについてそれぞれ調べれば良いだけ。

自分なら
 aaa-bbb-ccc-ddd
のようにシート1から文字列を作り、それが調べるセルで同じパターンになるかを調べます。
シート1はA5セルから、シート2はA11セルからデータが入力されているなら、

 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A11 & A12 & A13 & A14
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A12 & A13 & A14 & A15
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A13 & A14 & A15 & A16
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A14 & A15 & A16 & A17

という条件になる。
この4つのうちの一つでも条件を満たせばセルに赤色を付ければいい。
「Bチーム」についても同様にすればいいので、
この場合、8つの条件式を設定することになります。

面倒でもこの考え方ができていないと、ちょっと条件が変わっただけで対処できずに終わります。
冒頭で「並び順」について書きましたが、並び順がシート1のリストの通りでなくとも色を付けたい場合でも、この考え方は必要ということです。

・・・
ちなみに厄介なのが、どちらのチームにも「ccc」がいるというところかな。
これが無ければ違う方法でシンプルにできるんですけどねえ。

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付け...続きを読む

Qエクセルの事で質問ですが12345、34567、89548、67895、……と5桁の数値があり末尾が

エクセルの事で質問ですが12345、34567、89548、67895、……と5桁の数値があり末尾が5の数値の値の時だけセルに色を付けたいのですが、どのような方法で出来るでしょうか?

Aベストアンサー

こんにちは!

条件付き書式で対応できます。
色を付けたいセルを範囲指定(仮にA1セル以降の範囲を範囲指定した場合) → 
メニュー → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に
=MOD(A1,10)=5
という数式を入れ → 書式 → 塗りつぶしから好みの色を選択しOK!

※ 数式内の「A1」部分は範囲指定した最初のセル番地(左上のセル番地)にします。

※ 数値データの桁数に関係なく、下1桁が「5」のセルに色が付きます。m(_ _)m

Qエクセル初心者です。 よろしくおねがいします。 最近データをさわることとなりこまっていることがありま

エクセル初心者です。
よろしくおねがいします。
最近データをさわることとなりこまっていることがあります。


A B C D E X Y Z
6/10 6/30 7/30 0.2 0.4 0.3
7/20 7/10 7/25 0.1 0.2 0.25

A2=6/10でX2の0.5となり
B2=6/30でY2の0.4
C2=7/30でZ2の0.3と併用したデータとなっています。

Dセルに今日から一番近い日
=MAX(A2:C2)
C2の7/30となるのですが
E2セルは同時にZ2となるように,
D3は7/25でE3が0.25となるように考えていますがわかりません。
どのような関数式になるのか?
どうか、教えてください。
お願いいたします。

Aベストアンサー

こんにちは

『(A列、X列)、(B列、Y列)、(C列、Z列)の値がセットになっている時に、D列の算出値に対応した値をE列に表示したい』
という意味と解釈しました。

>Dセルに今日から一番近い日
>=MAX(A2:C2)
今日に一番近い日がMAXと限って良いのかどうかはわかりませんが、参照の考え方としては、D列の値をA:Cから検索して、それと同じ位置の値をX:Zから参照すれば良いことになります。

E2セルに
 =INDEX(X2:Z2,MATCH(D2,A2:C2,0))
の関数式を入れたらいかがでしょうか?

Q空白セルを含む範囲の入力値から階層式のフォルダ作成をする

いつもお世話になっております。


エクセルに入力した内容をもとに、階層式のフォルダを作成したいと思っています。
Excel2010を使用しています。

(階層式フォルダの作成方法は、以下のリンク先内容を参考にしています
http://www.excel.studio-kazu.jp/kw/20160121214900.html)

以下の入力状況でフォルダ作成は可能でしょうか。
 B列のか・き・く用にC列は6行づつ使いたいです。
 か・き・くの中に入るフォルダ(C列)の数は1~6個です。
 (例として3つまで上げましたが、実際は3つ以上で中身の数も不規則です)

C列に空白があると、「か」フォルダしか作成されません。
何とかC列を詰めることなく、「き」、「く」フォルダも作成できないでしょうか。
よろしくお願いいたします。

  A |B |C
1  あ|か|さ
2   | |   
3   | |  
4   | |
5   | |
6   | |  
7   |き|さ1
8   | |し1
9   | |  
10  | |  
11  | |
12  | |
13  |く|さ2
14  | |し2
15  | |す2
16  | |せ2
17  | |そ2
18  | |た2

いつもお世話になっております。


エクセルに入力した内容をもとに、階層式のフォルダを作成したいと思っています。
Excel2010を使用しています。

(階層式フォルダの作成方法は、以下のリンク先内容を参考にしています
http://www.excel.studio-kazu.jp/kw/20160121214900.html)

以下の入力状況でフォルダ作成は可能でしょうか。
 B列のか・き・く用にC列は6行づつ使いたいです。
 か・き・くの中に入るフォルダ(C列)の数は1~6個です。
 (例として3つまで上げましたが、実際は3つ以上で...続きを読む

Aベストアンサー

まず、シート名:作業 を追加してください。
表示されているシートの内容を作業シートにコピーします。(対象となるのはA,B,C列のどれかが空白でない行です)
そうすると、あなたのイメージ通りのシートが作成されます。
このシートをアクティブシートしてあなたが作成したプロシージャ(仮にsampleとします)を呼び出します。
そして、元のシートをアクティブ化します。
こちらで提示したマクロではsampleのなかはmsgboxで表示だけです。
Call sample 'これはあなたが作ったプロシージャ
で、実際に呼び出すのは、あなたが作成した本当のプロシージャにしてください。
-------------------------------------------
Option Explicit
Public Sub ディレクトリ作成()
Dim maxrow As Long
Dim row As Long
Dim row2 As Long
Dim ws As Worksheet
Dim savews As Worksheet
maxrow = Cells(Rows.Count, "C").End(xlUp).row 'C列の最大行取得
Set savews = ActiveSheet
Set ws = Worksheets("作業")
row2 = 1
For row = 1 To maxrow
If Cells(row, "A").Value <> "" Or Cells(row, "B").Value <> "" Or Cells(row, "C").Value <> "" Then
ws.Range("A" & row2 & ":C" & row2).Value = Range("A" & row & ":C" & row).Value
row2 = row2 + 1
End If
Next
ws.Activate '作業シートをアクティブ化
Call sample 'これはあなたが作ったプロシージャ
savews.Activate '元のシートをアクティブ化
End Sub

Public Sub sample()
MsgBox ("完了")
End Sub

まず、シート名:作業 を追加してください。
表示されているシートの内容を作業シートにコピーします。(対象となるのはA,B,C列のどれかが空白でない行です)
そうすると、あなたのイメージ通りのシートが作成されます。
このシートをアクティブシートしてあなたが作成したプロシージャ(仮にsampleとします)を呼び出します。
そして、元のシートをアクティブ化します。
こちらで提示したマクロではsampleのなかはmsgboxで表示だけです。
Call sample 'これはあなたが作ったプロシージャ
で、実際に呼び出す...続きを読む

Qexcelで特定のセルからいくつか下にあるセルを特定したい

excelのグラフを作成するとき、F27のセルからいくつか下がったセルを指定し、そのセルからスタートしたグラフを作成したいです。
例 B22に14、B23に13の場合(B22は①のデータ数、B23は②のデータ数)
=SERIES(,'シート名'!$F$27:$F$40,'シート名'!$G$27:$G$40,1)・・・①
=SERIES(,'シート名'!$F$42:$F$54,'シート名'!$G$42:$G$54,1)・・・②

ここで、B22とB23が毎回データ数が異なるのですが、②の式の$F$42の部分を$F$(28+B22)という風にB22の値によってスタートするセルを変えたいのですが、もちろんこんな式では動きません。
良い方法がございましたらご回答お願いいたします。

Aベストアンサー

②の方だけですが

以下の名前で名前付きセルを作成します。(名前は任意です)

F参照
=OFFSET(比較!$F$27,比較!$B$22+1,0,比較!$B$23,1)

G参照
=OFFSET(比較!$G$27,比較!$B$22+1,0,比較!$B$23,1)


=SERIES(,'シート名'!$F$42:$F$54,'シート名'!$G$42:$G$54,1)

=SERIES(,'シート名'!F参照,'シート名'!G参照,1)
に変えます。

Q名前の先頭に本日を付したデータの使い廻し

エクセル2013です。
名前の先頭に本日の日付を付したデータを、セルの随所に使い廻し(コピー)したいのです。
そこで、名前(波租:)の先頭に日付を付す関数【=TEXT(TODAY(),"m/d")&"波租:"】で、
日付の例として【9/1波租:】を作成しました。
しかし、この値を単なるコピーでは関数表示となり困っています。
関数値とリンクしたセルに “ 値 ” だけを設定すれば良いと想像しますが、やり方がわかりません。
【9/1波租:】から形式を選択して貼り付けで、値と数値の書式を選択は、使い廻しの度には面倒でやりたくありません。
もっと簡便な別のやり方でも構いません。どなたか詳しい方教示いただければ嬉しいです。

Aベストアンサー

えっと、ご自身で

>=TEXT(TODAY()

とか、書いてますよね。TODAY関数を入れるというだけの話です。
そのセルを=A1とかで参照するとかそういう話です。


人気Q&Aランキング