エクセルでの文字の抽出方法で良い方法がありますでしょうか?

列不揃いで入っている「名前」や「年度」から
「年度」を抽出して並べたいのですが、
何か良い方法をご存知でしたらお教えください。

「年度」は平成◯年や平成◯年◯月や昭和…などあり
文字数もまちまちです。

A 回答 (1件)

どのような表示になっているのかサンプルを出してください。


 ・平成十八年
 ・H2年12月
 ・昭和64年1月1日
 ・2002/4/1
…のように、すべて。

文字列として処理をして「年」「月」「日」に相当する値を抜き出し、それを日付として認識させます。
そのためFIND関数やSEARCH関数を使います。
年月日を切り分けるための文字を正しく指定する必要があるので、サンプルは絶対に必要です。
(年月日をピリオドで区切った入力のようにサンプルにないケースには対応できません)

・・・
てか、抜き出して何をしたいのかが分からないと、適切な処理ができないですよ。
 単に他のセルに表示させたいだけなのか、
 その入力されているセルを書き換えたいのか、
 日付順に並べ替えたいのか
 特定の日にちを検索したいのか
など。
    • good
    • 0

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

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

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

Qエクセルで「情報◯年◯月◯日更新」

エクセルの計算式について教えてください。
今日の日付と任意の文字をあわせて
「情報◯年◯月◯日更新」
といったように表示したいのですがうまくいきません。
ご教授お願いいたします。

Aベストアンサー

西暦でいいなら
=TEXT(TODAY(),"情報yyyy年m月d日更新")

和暦(年号なし)なら
=TEXT(TODAY(),"情報e年m月d日更新")

和暦(年号M,S,H)なら
=TEXT(TODAY(),"情報ge年m月d日更新")

和暦(年号 明,昭,平)なら
=TEXT(TODAY(),"情報gge年m月d日更新")

QExcelを分割 A列には日付、A列以外には営業担当者や商品や金額などが入力された列があります。 営

Excelを分割

A列には日付、A列以外には営業担当者や商品や金額などが入力された列があります。

営業担当者毎に、ファイルを分割するマクロをおしえてください。10人いれば、10ファイルできることになります。

営業担当者が入力されている列が資料により、異なるので、C列に営業担当者が入っている場合は、それをセルとかに入力して指定できる様にしたいです。

また、ファイルの出力先も指定できる様にしたいです。

よろしくお願いします。

Aベストアンサー

No.2 mike_gさんの質問ですが、回答者側から言わせてもらうと非常に重要なことです。
何故なら、質問者のレベルに合わせて回答しないと何の役にも立たないからです。
今回は、マクロの知識があると云うことなので、その前提で回答させていただきました。
こんな感じです。

Sub sample()
Set ws = ActiveSheet
ce = Range("営業担当者セル").Value
fp = Range("出力先").Value
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To Cells(Rows.Count, ce).End(xlUp).Row
Set d.Item(Cells(i, ce).Value) = Cells(i, ce)
Next i
For Each i In d.keys
ws.Copy
Columns(ce).ColumnDifferences(d.Item(i)).EntireRow.Delete
ActiveWorkbook.SaveAs Filename:=fp & "\" & i & ".xlsx"
ActiveWorkbook.Close
Next i
End Sub

No.2 mike_gさんの質問ですが、回答者側から言わせてもらうと非常に重要なことです。
何故なら、質問者のレベルに合わせて回答しないと何の役にも立たないからです。
今回は、マクロの知識があると云うことなので、その前提で回答させていただきました。
こんな感じです。

Sub sample()
Set ws = ActiveSheet
ce = Range("営業担当者セル").Value
fp = Range("出力先").Value
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To Cells(Rows.Count, ce).End(xlUp).Row
Set d...続きを読む

QB列とC列の両方に存在する単語を抽出したい

エクセルで、添付画像のように、「A列に頻度、B列に単語」が書かれています。

B列とC列の両方にある単語を抽出して、「E列に単語を、D列にその単語の頻度(A列の情報)」を書き出したいと思っています。

良い方法をご存知のかた、教えていただけますでしょうか?m_ _m

Aベストアンサー

こんにちは!
余計なお世話かもしれませんが・・・
画像を拝見する限りでは単語すべてを検索といった感じなのですかね?
すなわちZまであるとかなりのデータ量になると思います。

そこでVBAでの一例です。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, k As Long
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Columns(3), Cells(i, 2)) Then
k = k + 1
With Cells(k, 4)
.Value = Cells(i, 1)
.Offset(, 1) = Cells(i, 2)
End With
End If
Next i
End Sub 'この行まで

お望みの方法でなかったらごめんなさいね。m(_ _)m

こんにちは!
余計なお世話かもしれませんが・・・
画像を拝見する限りでは単語すべてを検索といった感じなのですかね?
すなわちZまであるとかなりのデータ量になると思います。

そこでVBAでの一例です。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, k As Long
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
...続きを読む

QエクセルでA列文字中にあるメールアドレスのみをB列に書き出す。

タイトル通りの質問なのですが、

A列に5行程度の文字列があり、その中から<aaa@bbb.co.jp>となっているメールアドレスのみをB列に抽出したいのですが、いい方法を教えて頂けないでしょうか。

Aベストアンサー

メールアドレスを検出するわけではありませんが、もしメールアドレスが< >で囲まれていて、かつ、< >の記号が文章の中でメールアドレスの部分のみに使われているか、他に使われていてもメールアドレスよりも後に使われているのであれば、次の方法を試してみて下さい。

A列にA1から文章が入力されているとして、B1に
=MID(A1,FIND("<",A1,1)+1,FIND(">",A1,1)-FIND("<",A1,1)-1)
と入力して、以下コピーとします。
B列に< >の中のアドレスが表示されると思います。

なお、< >も含めて抜き出したいのであれば、
=MID(A1,FIND("<",A1,1),FIND(">",A1,1)-FIND("<",A1,1)+1)
として下さい。

QEXILEのカウント関数について教えて下さい。 40行あるA列に同じ文字をセルに入力。B列には異なる

EXILEのカウント関数について教えて下さい。

40行あるA列に同じ文字をセルに入力。B列には異なる文字をセルに入力。C列にA行とB行を結合した文字を表示しています。
D列にC列の行ごとで同じセルの数をカウントしたいと思っていますが
C列は関数がある為、関数をカウントしてしまいます。D列は、40行全て40と表示してしまいます。表示されてない文字はカウントしない様に出来ないでしょうか。教えて下さい。

Aベストアンサー

No.1です。

数式は2行目に入れているのですね?
>何も表示されてない時に1048575と途方にもない・・・

Excel2007以降では最終行が1048576行目になります。
データがない場合は空白セル数(数式は入っているが空白に見えている)セル数が表示されているものと考えられます。

このような場合はエラー処理が必要になります。
一般的にはIF関数で対処できます。
(エラー処理は色々な場面で出てきます)

D2セルの数式を
=IF(C2="","",COUNTIF(C:C,C2))
としてフィルハンドルで下へコピーしてみてください。
数式の意味
C2セルが空白に見えている場合は何も表示しない、
そうでない場合はC列にあるC2セルの個数を表示
といった感じになります。

※ 厳密にいえば数式が入っているので「空白」ではないのですが
現段階ではこの程度でやめておきます。m(_ _)m


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

人気Q&Aランキング

おすすめ情報