人気マンガがだれでも無料♪電子コミック読み放題!!

本日の日付が、列の日付とマッチした場合、行の値を抽出したいと考えています。
例として下記のデータあるとします。

   B列    C列    D列    E列    F列    G列
   2019/1/1 2019/1/2 2019/1/3 2019/1/4 2019/1/5 2019/1/6
倉庫A みかん        すいか              
倉庫B       りんご              メロン
倉庫C いちご              バナナ

別シートのセルに以下のように抽出したい場合、
どのような関数の組み合わせになるか教えていただけますでしょうか。

本日が2019/1/1の場合
別シート
倉庫A みかん
倉庫B
倉庫C いちご

本日が2019/1/5の場合
別シート
倉庫A
倉庫B メロン
倉庫C

A 回答 (3件)

データが入っているシートを、Sheet1、


抽出させるシートを、Sheet2 とします。

Sheet2 のA1セルに日付を入れるとして、A2~A4に倉庫名があるとします。
Sheet2 のB2セルに

=HLOOKUP($A$1,Sheet1!$A$1:$G$4,ROW(B1),0)

あとは下に引っ張ってみてはどうでしょうか。

参照データの範囲(Sheet1!$A$1:$G$4)は適宜変更してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
意図通り動作する事が出来ました。

お礼日時:2019/01/03 22:19

こんにちは!



↓の画像でSheet2のB2セルに
=HLOOKUP(A$1,Sheet1!$1:$4,ROW(),0)&""

という数式を入れフィルハンドルで下へコピーしています。

※ エラー処理はしていません。m(_ _)m
「本日の日付とマッチした列の値を抽出」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます。
意図通り動作する事が出来ました。

お礼日時:2019/01/03 22:18

倉庫の並びが元データと一緒ならHLOOKUPでできるのではないですか?

    • good
    • 0

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

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

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

Q知ってましたぁ?Cell関数にないもの

=CELL("row",範囲)や =CELL("col",範囲) や =CELL("width",B3) は存在するのに、=CELL("height",B3) が存在しないことを?
皆さんはなぜだと思いますか?セル幅があるならセルの高さもあって好いとは思いませんか?

ちなみに、=CELL("width",B3) はB列の列幅を返します。
実は、列方向(例えば範囲 B1:B3)に結合セルがあるかどうかを調べたいのですが、何か方法がありますでしょうか?当該範囲が結合されていれば、=CELL("height",B2) や =CELL("height",B3) の戻り値は 0 になる筈と踏んだのです。

Aベストアンサー

書式で検索?

https://www.windows8-help.net/office/cellketu/

QVLOOKUPの一部が参照しません、どのように直したら良いでしょうか

INDEX(価格表の参照範囲,MATCH(検索値,会社名の列),MATCH(検索値,商品名に行))
で商品価格を読みに行く関数をセルに入れました。
ほぼ問題なく価格を拾ってくるのですが、一部会社名がアルファベットの会社だけ参照されず#N/Aエラーが出てしまいます。
参照先の会社名をそのままコピーしてもやはりエラーが出てしまうのでアルファベットか否かが問題なのかなと思うのですが、何でできないのでしょうか?
会社名を変える以外で何か設定の部分で参照するようにできるでしょうか?

Aベストアンサー

全角半角は合ってますか?
後、余分なスペースなど入ってませんか?

Qエクセルのワークシートに、文字を入れるとエラーになります。

ワードに、エクセルのワークシートを埋め込みました。
そのワークシートに、文字を入れるとエラーになります。
(数字は問題ないようです)
以前作った、文字を入れたワークシートを開いた場合もエラーになります。
これはファイルが壊れてしまったのでしょうか?

Aベストアンサー

具体的に、エラーになるケースとエラーにならないケースを記載して頂くと、
回答者の方は回答がやり易いと思いますよ。
>(数字は問題ないようです)
>これはファイルが壊れてしまったのでしょうか?
数字に問題はなく、他がえらーからして、ファイルが壊れたとは考えにくいのですが。

ご参考まで。

Q列に出てくる数字のカウント数

添付のように列に出てくる数字のカウントをしたいのですが
式を教えて下さい。

Aベストアンサー

済みません、
訂正 致します、

記載、
代表式、
=INDEX(FREQUENCY($C$1:$C$10,$B$14:$B$23),B14)

修正後、
代表式、
=INDEX(FREQUENCY($C$1:$C$10,$B$14:$B$23),ROW(A1))


尚、
ファイルに 対しても、
修正を 加えておきます。

済みませんでした。

Q一定の行間の削除

エクセルで ある列 A列に下の方に 文字が入ってゐて 並んでいて 例えば 表という文字が
A1に入ってゐて、A2に表の内容が○○、A3にも△△、・・・・という具合で並んでいて、A5に裏
という文字が入ってきて、その裏内容がA6 ××、××、A7 ◇◇と並んでいて  さらに下ってゆくと例えばA9にまた表という文字が入ってきてA10にその内容の□□、A11◆◆・・とならんでいてしかしまたA15に裏という文字がでてきて、その裏の内容をA16、A17....という具合に下にならんで繰り返していった場合、裏という行を含めた裏の内容の行を一気に消す VBAはどう書けばいいのでしょうか。つまりは裏の内容を一気に消し、表の内容だけにしたいということです。ご教授ください。

Aベストアンサー

こんにちは!

表のレイアウトがよく判らないのですが・・・
単にA列が「裏」の行を削除ではなく、↓の画像のような場合
黄色のセルの行を削除したい!というコトでしょうか?

そういうコトだとしての一例です。

Sub Samle1()
 Dim i As Long, myRng As Range, myFlg As Boolean
  For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
   If Cells(i, "A") = "裏" Then
    myFlg = True
   ElseIf Cells(i, "A") = "表" Then
    myFlg = False
   End If
   If myFlg = True Then
    If myRng Is Nothing Then
     Set myRng = Cells(i, "A")
    Else
     Set myRng = Union(myRng, Cells(i, "A"))
    End If
   End If
  Next i
   If Not myRng Is Nothing Then
    myRng.EntireRow.Delete
    MsgBox "完了"
   Else
    MsgBox "該当データなし"
   End If
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんにちは!

表のレイアウトがよく判らないのですが・・・
単にA列が「裏」の行を削除ではなく、↓の画像のような場合
黄色のセルの行を削除したい!というコトでしょうか?

そういうコトだとしての一例です。

Sub Samle1()
 Dim i As Long, myRng As Range, myFlg As Boolean
  For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
   If Cells(i, "A") = "裏" Then
    myFlg = True
   ElseIf Cells(i, "A") = "表" Then
    myFlg = False
   End If
   If myFlg = True Then
  ...続きを読む

QINDIRECT関数の代替方法は?

先に本スレッドで下記数式を教わり問題を解決することが出来ました。
  =SUM(INDIRECT("E"&MATCH("AAA",A:A,0)&":"&"E"&MATCH("AAA",C:C,0)))
ただ、このINDIRECT関数により、ブックに変更がなくても終了時にブックの保存の要否が尋ねられます。
これを回避するためにINDIRECT関数の使用を止めたいのですが、その方法をお教えいただきたくお願いします。

Aベストアンサー

ちょっと気になったので一言だけ。
別の人がこのシートを使って試算をしたとします。保存しなければいいやと思ってバッテンをクリックしたら「保存しますか」のメッセージが出ずに、いきなり保存されてしまいました。ってことのなりませんか。
ここは作業列を作ってシンプルな式で対応した方が安全な気がします。

QエクセルMATCH関数で得た値をセル位置?として別の関数に使用

日付,数値1,数値2,数値3,数値4,......数値20
20181230,10,1,6,12,7,3,5.....
20181231,1,3,7,2,5......
20190101,7,9,3,11,15,4,6,.....
20190102,10,11,14,2,6,7,.....
上記の表がシートDBにあり、シート1のセルA2に20190101、B2に9があり、C2に3を返す関数を教えて下さい(4行目20190101行にある9が、3番目にあるという意味で3を返す関数)。
MATCH(A2,DB!A:A,0)で得た4を使ってMATCH(B2,DB!A4:T4,0)で出ると思うのですが、一つの式にしたいのです。関数に関数で得た値をセル位置?とするにはどうすればよいのか、教えていただけないでしょうか、よろしくお願い致します。

Aベストアンサー

(´・ω・`)?
日付を検索して、「20190101」に該当する行にある「9」が何列目にあるかを知りたいということでしょうか。

日付の検索は
 =MATCH(A2,DB!A:A,0)
でOK。
問題ありません。
「4」と言う数字が返ってくるでしょう。

続いて横方向への検索になりますね。
 =MATCH(B2,DB!A4:T4,0)
でOK。
問題ありません。

質問は「この横方向の検索に使うMATCH関数に、前のMATCH関数をどう組み合わせればよいか分からない」ということですので、
ここはOFFSET関数を使うことを勧めてみます。
OFFSET関数は指定した基準のセルからどれだけずれた場所のセルを参照するかと言う関数です。
 =OFFSET( 基準 , 行数 , 列数 [, 高さ , 幅] )
のようにして使います。
[ ] で囲まれた部分は省略可能ですが、その場合は1つのセルとして参照範囲が決まります。
質問のケースでは、この「高さ」を「1」、「幅」をデータのある列の数にする事で利用可能と思います。
例えば
 OFFSET(Sheet2!A1,3,0,1,20)
とすると、
 Sheet2のA1セルから3つ下、右へ0のセルから、高さ1、幅20の範囲
ということで
 Sheet2!A4:T4
の範囲が返ります。

さあ、あとはどこにどの数字を入れればいいかは分かるよね。
がんばれ。


・・・余談・・・

ハッキリ言って分かりにくい質問です。
10分以上読み直して、ようやく意図を掴めたという感じ。


別回答でINDIRECT関数についても書いてみようかと思ったけど、ここで簡単に説明してみる。
INDIRECT関数は文字を範囲に置き換える関数です。
「A」と言う文字と「4」と言う数値を繋げてINDIRECT関数に入れると、A4と言うセルを参照することができるようになるってもの。
 =INDIRECT("A" & 4)
他にも
 =INDIRECT("Sheet2!A" & F1 & ":T" & F1)
としたときにF1セルに「4」が入力されていれば、
 Sheet2!A4:T4
を参照してくれます。

視覚的にはこのほうが分かりやすいかもしれないけど、あまりお勧めはしない。
視覚的ということは中身をイメージできないと逆に分かりにくいものになるからだ。

(´・ω・`)?
日付を検索して、「20190101」に該当する行にある「9」が何列目にあるかを知りたいということでしょうか。

日付の検索は
 =MATCH(A2,DB!A:A,0)
でOK。
問題ありません。
「4」と言う数字が返ってくるでしょう。

続いて横方向への検索になりますね。
 =MATCH(B2,DB!A4:T4,0)
でOK。
問題ありません。

質問は「この横方向の検索に使うMATCH関数に、前のMATCH関数をどう組み合わせればよいか分からない」ということですので、
ここはOFFSET関数を使うことを勧めてみます。
OFFSET関数は指定した基...続きを読む

Qエクセル 年数の計算で ○○年○○ヵ月と計算した時 桁をそろえたい

現在の日にちと誕生日を引き算し

○○年○○ヵ月と表示させている表があるのですが

10か月
9か月
11か月
2か月
等と表示され桁がそろわないので醜いです
上手く桁をそろえる方法があるでしょうか?

下記のような計算式を使用しています
=IFERROR(IF(AL29,DATEDIF(AL29,$F$2,"Y")&"年"&DATEDIF(AL29,$F$2,"YM")&"ヶ月",""),"")

Aベストアンサー

No.2の回答者です。
年については、二桁表示にしないでもよいかも。
 =IFERROR(IF(AL29,TEXT(DATEDIF(AL29,$F$2,"Y"),"##年")&TEXT(DATEDIF(AL29,$F$2,"YM"),"00ヶ月",""),"")
または
 =IFERROR(IF(AL29,DATEDIF(AL29,$F$2,"Y")&"年"&TEXT(DATEDIF(AL29,$F$2,"YM"),"00ヶ月",""),"")

これでよければ、以下のように修正します。
 =IFERROR(IF(AL29,TEXT(DATEDIF(AL29,$F$2,"Y"),"##年")&IF(DATEDIF(AL29,$F$2,"YM")<10,TEXT(DATEDIF(AL29,$F$2,"YM"),"_00ヶ月"),DATEDIF(AL29,$F$2,"YM")&"ヶ月",""),"")
または
 =IFERROR(IF(AL29,DATEDIF(AL29,$F$2,"Y")&"年"&IF(DATEDIF(AL29,$F$2,"YM")<10,TEXT(DATEDIF(AL29,$F$2,"YM"),"_00ヶ月"),DATEDIF(AL29,$F$2,"YM")&"ヶ月",""),"")

No.2の回答者です。
年については、二桁表示にしないでもよいかも。
 =IFERROR(IF(AL29,TEXT(DATEDIF(AL29,$F$2,"Y"),"##年")&TEXT(DATEDIF(AL29,$F$2,"YM"),"00ヶ月",""),"")
または
 =IFERROR(IF(AL29,DATEDIF(AL29,$F$2,"Y")&"年"&TEXT(DATEDIF(AL29,$F$2,"YM"),"00ヶ月",""),"")

これでよければ、以下のように修正します。
 =IFERROR(IF(AL29,TEXT(DATEDIF(AL29,$F$2,"Y"),"##年")&IF(DATEDIF(AL29,$F$2,"YM")<10,TEXT(DATEDIF(AL29,$F$2,"YM"),"_00ヶ月"),DATEDIF(AL29,$F$2,"YM")&"ヶ月",""),"")
または...続きを読む

QExcel:セルに時刻を入れると、条件付き書式の塗り潰しが適用される方法について

教えて頂きたいことがあります。
製造業メーカーで働いている者ですが、以下ルール(条件)に基づいた管理表を作成しており、
エクセルの「関数」と「条件付き書式」を駆使して作成したいです。(添付資料をご確認願います)

■「条件付き関数」と「関数式」を駆使して入力表を作成する。
<作成したい内容>
①K列「生産時間(h)」には、B~I列の情報に基づき(連続生産した場合を前提として)生産時間を「時刻表示」ではなく「日数表示」で関数を組みたい。
②B~I列「生産開始」~「生産終了」までの間で、L~N列の「検査時間」のタイミングで抜き取り検査をする場合、測定するタイミングをO~AC列に黄色で塗り潰したい。
 [前提条件]
   ● 生産開始時間(B~E列)の時間に該当する開始班は、「抜き取り検査」は必ず実施するものとする。(※よって開始班は黄色で塗り潰すものとする)
   ● L~N列は、J列の「製品」により決まっているものとする。(*J列に「製品」を入力すると、L~N列に自動で時刻表示が入るようVLOOKUP関数が入っているものとする)
 [補足説明]
   ●6行目: O~AC列の1日目、2日目、・・・とは、「生産期間」の間の該当日付を初日から連続的に示し、具体的には13行目、14行目に補足書き致しました。
   ●日付の変更タイミングは、通常の考え方となる、夜0:00を境に日付が変わるものとします。

◎ ①と②に対してどのような「関数式」と「条件付き書式」をどのセルに設定すれば実現可能でしょうか?
文章が長くなり申し訳ございません。エクセルの詳しい方に支援頂けると有難いです。
ご教授頂ければ幸いです。宜しくお願い致します。

教えて頂きたいことがあります。
製造業メーカーで働いている者ですが、以下ルール(条件)に基づいた管理表を作成しており、
エクセルの「関数」と「条件付き書式」を駆使して作成したいです。(添付資料をご確認願います)

■「条件付き関数」と「関数式」を駆使して入力表を作成する。
<作成したい内容>
①K列「生産時間(h)」には、B~I列の情報に基づき(連続生産した場合を前提として)生産時間を「時刻表示」ではなく「日数表示」で関数を組みたい。
②B~I列「生産開始」~「生産終了」までの間で、L...続きを読む

Aベストアンサー

先ずは簡単なところから…(*^_^*)
K7: =IF(COUNTBLANK(B7:I7),"",ROUND((DATE(F7,G7,H7)+I7)-(DATE(B7,C7,D7)+E7),2))
【お断り】書式は「G/標準」に。

Q条件に合う日付を表示させる

下記データがあります
    K列 L列     M列     N列     O列     P列・・・ 
1行目    2018/12/2 2018/12/9  2018/12/16 2018/12/23 2018/12/30・・・
2行目    20000   10000    5000     10     -100・・・
3行目    100    -2300     -5000    -5100    -10000・・・


L列目以降の数値は昇順です。(例:M列目とN列目だと、M列目の方が数値が大きい)

数値がマイナスになった時の1行目の日付-※日をK列に表示したいですが、方法をご教示お願い致します。

上記※日の数値はどこかのセルに整数として入力してあるのを使いたいです。
例えば、※日=5日とした場合、2行目の場合はセルK2に2018/12/25、3行目の場合はセルK3に2018/12/4を表示。
(ただし、日付の結果が本日より前の日付になる場合は本日の日付、L列目でいきなりマイナスの場合も本日の日付、マイナスが無い行の場合は"-"を表示)
途中に空白行は存在しません。
可能であれば、数値データが変わったらリアルタイムでK列のデータも変わるようなのが良いです。
(関数で出来るでしょうか?出来なければVBAでお願いします)

下記データがあります
    K列 L列     M列     N列     O列     P列・・・ 
1行目    2018/12/2 2018/12/9  2018/12/16 2018/12/23 2018/12/30・・・
2行目    20000   10000    5000     10     -100・・・
3行目    100    -2300     -5000    -5100    -10000・・・


L列目以降の数値は昇順です。(例:M列目とN列目だと、M列目の方が数値が大きい)

数値がマイナスになった時の1行目の日付-※日をK列に表示した...続きを読む

Aベストアンサー

スタートは「最初に負の値になった列の1行目を返せ」ですね。L列から必要範囲の値をsign関数にぶち込んだ配列を生成し、match関数で-1を見つければいいんです。K2には、

=index($L$1:$AA$1, match(-1, index(sign($L2:$AA2),0), 0))

あとはどこかのセルの日数を引き算し、今日より過去にならないようmax関数で今日を下限とし、負の値がなくてN/Aエラーになってたらiferror関数で"—"を返すと。

=iferror(max(today(), 上記の数式-どこかのセル), "—")


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング