• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2007 文にリスト中の文字があれば表示)

Excel2007でリスト中の特定の文字を表示する方法を知りたい

このQ&Aのポイント
  • Excel2007のA列には日付を含む文章が入っており、C列には日付が入っています。A列の文章にC列の日付がある場合、その日付をB列に表示したいです。FIND関数だけでは対応できないため、他の方法を探しています。
  • Excel2007で、A列に含まれる文章から、C列の日付を抜き出してB列に表示したいです。FIND関数による単純な検索では対応できないため、別の方法を探しています。
  • Excel2007のA列には日付を含む文章があります。C列には日付が入っているので、A列の文章からC列の日付を抜き出してB列に表示したいです。FIND関数ではうまくいかず、別の方法を模索しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! No.1さんの補足を読ませていただくと、関数でやるとなるとかなり難しいと思います。 そこでお望みでないマクロになってしまいますが 一例です。 データはA・C列とも1行目からあるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i As Long, k As Long, M As Long Dim str1 As String, str2 As String Columns(2).ClearContents For k = 1 To Cells(Rows.Count, 3).End(xlUp).Row str1 = WorksheetFunction.Text(Cells(k, 3), "yyyy/m") For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For M = 1 To Len(Cells(i, 1)) str2 = Mid(Cells(i, 1), M, Len(str1)) If str2 = str1 Then Cells(i, 2) = str2 End If Next M Next i Next k End Sub 'この行まで ※ 関数でないので、データ変更があっても反映されません。 データ変更があるたびにマクロを実行する必要があります。 関数で簡単にできる方法があればごめんなさいね。m(_ _)m

Caryo_t
質問者

お礼

ご回答ありがとうございます! マクロにお詳しいんですね。大変勉強になりました。 どうしても関数で実現できない場合、こちらを使わせて頂きます。 多くのお時間をいただき、本当にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.2です! たびたびごめんなさい。 前回のコードではB列はシリアル値ではありません。 質問内に >その日付だけをB列のセルに抜き出す・・・ とありますので、B列はC列のシリアル値そのものを表示しなければならないのだと思います。 前回のコードは削除して、↓のコードに変更してください。 Sub test() 'この行から Dim i As Long, k As Long, M As Long Dim str1 As String, str2 As String Columns(2).ClearContents For k = 1 To Cells(Rows.Count, 3).End(xlUp).Row str1 = WorksheetFunction.Text(Cells(k, 3), "yyyy/m") For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For M = 1 To Len(Cells(i, 1)) str2 = Mid(Cells(i, 1), M, Len(str1)) If str2 = str1 Then With Cells(i, 2) .Value = Cells(k, 3) .NumberFormatLocal = "yyyy/m" End With End If Next M Next i Next k End Sub 'この行まで ※ これでC列のシリアル値(表示形式は "yyyy/m")のデータがB列に表示されると思います。 何度も失礼しました。m(_ _)m 

Caryo_t
質問者

お礼

何度も推敲していただき、ありがとうございます。 もう少しだけ締め切りを延長させてください。

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

>Aに入っている文章にCの日付がある場合、その日付だけをB列のセルに抜き出すというものです。  ⇒こんな感じでしょうか。   =IF(ISNUMBER(FIND(TEXT(C1,"yyyy/m"),A1)),C1,"")

Caryo_t
質問者

お礼

ご回答ありがとうございます。 このような方法もあるのですね。大変勉強になりました。 誤解を受ける文面でしたが、C列にはC1に1995/1があり、その後C120 の2005/1まで、120の日付が入っています。 ご回答案では、C1と対応しているかどうかしか見ることができませんので、残念ながらうまくいきませんでした。 ただ、この方法は応用が効くかもしれないと思い、今まで苦闘しておりました。 お礼が遅くなり、申し訳ございませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL VBA マクロ 日付

    こんばんわ。 EXCEL VBA マクロ の日付について質問があります。 セル"A1"で"年"(例:2008)、セル"B1"で"月"(例:5)を指定します。 C1からC500くらいまで(毎日増えていきます)日付が入っています。 A1、B1で指定した年月と同じC列の日付を 10桁スラッシュ区切りの形式(例:2008/05/15)で 右隣のセル(D列)にコピーしたいんです。 困ったことにC列は形式が決まっているわけではありません。 たとえば、2008年5月15日の場合、 ・20080515・2008年5月15日・2008.05.15・2008.5.15 ・2008/05/15・2008/5/15・08/05/15・2008-5-15 その他、いろいろ考えられます。 これをマクロでやるにはどうすればいいでしょうか。 毎月一回実行します。 日付の形式をチェックするところで やり方がわからなくて困っています。 よろしくお願いします。

  • 検索値に数値や文字列で検索してもエラーになる

    WIN7 EXCEL2007でマクロ作成中の初心者です。  A列(セルA3からA20)に  組、 Z3、 B4(1)、45、8 などの文字列や数値が表示されています。  (セルA列には、VLOOKUPで他の表から検索したものです。)   そして、C列に(セルC3からC20) セルA3が 組のときは   セルC3に 5:00 を入れなさい セルA4が Z3のときは   セルC4に 6:00 を入れなさい セルA5が B4(1)組のときは セルC5に 9:00 を入れなさい    セルA6が 45  のときは セルC6に 11:00を入れなさい という式をいれたいのです。 ちなみに自分で以下の式をいれて確認したところ =VLOOKUP(A3,データ範囲名,2,FALSE) =VLOOKUP(A4,データ範囲名,2,FALSE) =VLOOKUP(A5,データ範囲名,2,FALSE) 以下つづく するとセルA3の表示が W3 のときは #N/Aになり W3のとき正常に表示されます。 45という数字も出来ました。 検索値は文字列でも数値でもOKと聞いてますが、なぜ出来ないのでしょうか? 他のfindとか別の方法でも出来る方法教えていただきたいです。

  • 日付を文字列ではなく、日付として表示させたいです!

    Excelで下記の数式を使用し、隣のシートから日付(〇〇〇〇/〇〇/〇〇の形式)を 表示させたいのですが、何故か文字列として表示されてしまいます。 (2020/5/20なら43971と表示され、表示形式を「日付」で選択しても変わりません) 日付として表示するにはどうしたら良いでしょうか。 また、同じセルでも日付ではなく、単語が表示されるケースもあるので、その場合は同じ単語が表示されるようにしたいです。 ◆使用している数式 IF(ISERROR(VLOOKUP(G10,Aシート!$B$2:$F$30,5,FALSE)),"",VLOOKUP(G10,Aシート!&B$2:$F$30,5,FALSE)&"") 空欄の時は、0やエラーを表示させないように式に組んでいるので、 もしかしたら、その影響かもしれません... excelにあまり詳しくなく、ご教示頂けましたら助かります。 よろしくお願いいたします。

  • VBA 検索したセルに入力

    ExcelのVBAを使用して データの入力されたファイルに行列から検索したセルに数値を入力したいのです。 例えば、名前(行)と、日付(列) 2つの条件で、セルを検索し、該当するセルに、データ(数字とか)を 入力したいのです ------------------------------------  6/1 6/2 6/3 6/4 ・・・ a b c ・ ・ ------------------------------------ 例えば、A5に名前、B5に日付、データエリアがB10:Z20の場合 =INDEX(B10:Z20,MATCH(A5,A10:A20,0),MATCH(B5,B9:Z9,0)) で、該当するセルを探すことはできたのですが、 このセルに、データを入力したいときは、 ROWやCOLUMNで、行番号、列番号を取り出して Cellsで、入力すればいいのかな?と考えていますが もっと簡単にできるのでしょうか? (FIND関数は、使ったことがなく、どうなんだろう?と) それでいいよ とか、こっちの方が簡単 とかあれば、教えてください 

  • 【Excel】列の自動表示

    あるセルに文字列が入ると、非表示にしていた列を表示させることってできるのでしょうか? 例えば、Aシート,Bシートがあり、BシートのG~K列までを非表示としています。 そこで、AシートのC1に文字列を入れると、自動的に、BシートのG~K列までが表示される ということをやりたいのですが、可能でしょうか? アウトライン機能ですとか、VBAでボタンを操作する等、何か操作が入るのではなく、 文字列を入れると、自動的に表示されるようにしたいです。

  • エクセルVBA 日付の評価、大小を比べるには

    エクセルのセルに日付データーが入っています。 その値を取得して、他のセルに入っている日付と比べたいのですが、 日付データをどの形に変換して比べればいいか分かりません。 ___|_____A_________|_____B___________|______C_____ 1_|_2007/6/1__|__2007/7/1__|____________ 2_|_2007/7/1__|__2007/7/23_|____________ 例えば上の表があったとして、A列とB列にある日付を比べて、大きい 方をC列に記入するということをVBAでしようとするとき、セルに入って いるデーター形式をどの形に変換して評価すればいいでしょうか? 日付データーをシリアル値に変換する方法とかあるのでしょうか? どなたか教えていただけないでしょうか?

  • Excel文字列の連結について教えてください(VBA)

    Excelの文字列の結合について教えてください。 色々調べたのですが、VBA自体がよくわからず困っています。 やりたい事は、(Excel表をご参考) 『セルA1とB1とA2の文字を固定で、セルA3以降の文字以降を  順次連結してcsvに書き出すVBAを作成したい。』 どうしても繰り返す連結マクロがわかりません。 ExcelVBAに詳しい方、教えてください。 よろしくお願いします。 結果例) 20080501A01 20080501A02 20080501B01 20080501C01   ・   ・(300件以上続きます) <Excel表>    A列  B列 1  2008  05 2  01    3  A01 4  A02 5  B01 6  C01 7  ・ 8  ・

  • EXCEL関数教えて下さい。

    A1、B1にランダムに変化する数があります、C列に適応した数を自動表示させたいです。 A1 総数 B1 1箱単位の数 C列表示ラベル  と=IF($A$2-($B$2*(ROW()-1))>=$B$2,$B$2,IF($A$2-($B$2*(ROW()-1))<1,"",$A$2-($B$2*(ROW()-1)))) と言う事で他の方から教えて頂きましたC列には順番に表示されました同じ内容でランダムなセルG7,I7,G12,I12,G17,I17にも表示させるには、どうしたら宜しいでしょうか教えてください宜しくお願いします。

  • EXCEL・含まれる値でセルを検索して行列名を返す

    エクセルの関数でできるかどうか分かりませんが、、 下記のように表があり、特定の値を含むセルが複数存在しています。        “A列”   “B列”   “C列” ・・・ 9/1(日)  111aaa  222bbb  333ccc 9/2(月)  444ddd   111eee  555eee 9/3(火)   666fff   777ggg  111hhh  ・  ・  ・ このときに、「111」を含むセルを検索すると そのセルが存在する【行名(日付)】と【列名】をずらーーっと 下記にように返す方法はなにかありますでしょうか?? “A列”の9/1(日) “B列”の9/2(月) “C列”の9/3(火)  ・  ・ 尚、上記のように出力できなくても、 特定の文字列を含む行名と列名が 一括で確認できれば問題ありません。 (VBAとかだとできるのでしょうか、、) 可能な限り急ぎ方法を知りたいのですが、 ググってもvlookup、indexの解説ばかりで困ってしまっていますので、 どうかアドバイスのほど宜しくおねがいします。

  • 【Excel】条件を満たすデータの集計について

    Excel2003を使用しています。 A列(A7セル以下) → 日付[yy/mm/dd 形式] B列(B7セル以下) → “-”(ハイフン)を含む11桁の数字[例:1234567-8900] C列(C7セル以下) → 文字列 D列(D7セル以下) → 数値 が入力されている表があります。 A列の日付が 06/09/29 以前で、かつ、B列のハイフン前の4桁が『4567』であるD列の数値を集計したいのですが、どのようにすればいいでしょうか? 前回、同様の質問(No.3403437)で回答をいただきましたが、例の挙げ方が良くなかったようで、実際には正しい計算結果を得ることができませんでした。 よろしくお願いします。

専門家に質問してみよう