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

エクセル2007を使っています。

例えば下記のような文字列がA列にあったとして
関数を使ってB列をこうのようにしたいのです。

【A列】
ABC DEF
GH IJK
LMNO PQR S
TU VW X YZ

【B列】
DEF
IJK
PQR S
VW X YZ

要するにA列の最初のスペースまでの文字列を削除したものをB列に求めたいのです。
A列には必ずスペースが入っています。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

こんな感じですかね



B1=MID(A1,FIND(" ",A1)+1,LEN(A1)-FIND(" ",A1))

あとはコピすればいいんじゃないですか?
    • good
    • 7
この回答へのお礼

こちらの式で問題なくできました。
1万行くらいあったので助かりました。
ありがとうございました!

お礼日時:2012/06/06 14:21

「MID」の代わりに「RIGHT」関数を使った方法で・・・


=RIGHT(A1,LEN(A1)-FIND(" ",A1)) という式で・・・。
    • good
    • 6

=MID(A1,FIND(" ",A1)+1,1000)

    • good
    • 3

B1に、


=MID(A1,FIND(" ",A1,1)+1,1000)
とか。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

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

Qエクセルのセルの中の,よりも前の文字を消すには?

例えばA1のセルに"1,apple"、A2のセルに"2,orange"といった感じで
下へ何個も箇条書きのような文字の入ったセルがA列に続いているとします。
この場合関数などを使い、,の前の数字を,ごと消してしまう方法はありますか?

例えばA1のセルに"1,apple"なら、"apple"に変更するといった感じです。

Aベストアンサー

次の方法は如何でしょうか。
(1)A列を選択→編集→置換
(2)検索文字列欄に*,(半角) 置換文字列欄は未入力→すべて置換

Q一番右のスペース以降の文字列を抽出したい

winXP Excel2003

外国人の氏名(カタカナ)と敬称が大量に入力されたファイルがあります。
氏名と敬称が同じセルに入っているので、敬称のみを
隣のセルに移したいのですがうまくいきいません。

名前は各国さまざまで、スペースでいくつかに区切られています。
名前の最後にスペース+敬称がついており、敬称の種類はたくさんあります。
(様、氏、閣下、女史)など。

そこで、
「一番右のスペース以降の文字列を抽出」
すればいいかな?と思うのですが、IfやRight、LENなどを
使っても、何が悪いのかエラーが出てしまいます。
区切り位置ウィザードでは、スペース全てで区切られてしまって
氏名がバラバラになってしまいます。

何かいい関数はありませんか?
勉強不足ですみません。宜しくお願いします。
-------------------------------------------
元データ例)
ハリー ポッター 様
セブルス スネイプ 閣下
ボガート 氏
ニコラス ド ミムジー ポーピントン 卿

Aベストアンサー

様、氏、閣下、女史などの敬称で最長のものが2文字なら、これでいけると思います。
=MID(RIGHT(A1,3),FIND(" ",ASC(RIGHT(A1,3)))+1,2)

もし3文字の敬称もあるなら
=MID(RIGHT(A1,4),FIND(" ",ASC(RIGHT(A1,4)))+1,3)
ただし、これは敬称が1文字でスペースの前の文字列も1文字の人、たとえば、「アイ ウ 様」 みたいのがいたらダメです。(そんな人いないかな)

Qスペースとスペースの間の文字を抽出する関数

Excelのひとつのセルのなかに
以下のように
スペースで区切って3つの情報を入力しています。

AAA BBB CCC
DD EEEEE FF
G HHHHHH III

このすべてを、それぞれのセルに分解して入力したいです。
一番左の情報(AAA,DD,G)については
以下の関数で抽出することができました。

=LEFT(A1,SEARCH(" ",A1,1)-1)

2つめ、3つめについては
どのように関数を記述すればいいでしょうか?

お願いいたします!

Aベストアンサー

A列に文字列があるとき、
B1=LEFT(A1,SEARCH(" ",A1,1)-1)

C1=LEFT(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)-1)

D1=MID(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)+1,LEN(A1))

長いなぁ、もっといい方法があるかも。

要するにMID関数で文字列を切り取って
その切り取った文字列を対象に
スペース位置を特定して、さらに切り取ってるだけです。
D1については最後の切り取り文字数を正確に出す必要はないので
元の文字列長まで出すようにすれば最後まで出てきました。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

QExcelで特定の文字以下を削除したい

メールアドレスの整理をしているのですが、困っています。
どなたかご教示頂ければ助かります。
文字列操作で特定の文字以下を一斉に削除する方法を教えてください。
@以下を全て削除したいのですが、@より前も後も文字数がばらばらですので、rightやleftは使えません。
よろしくお願いします。

Aベストアンサー

A列にメールアドレスが入っているとします。
B1に以下を入力して、下にコピーする。
=MID(A1,1,FIND("@",A1)-1)

Qセルの文字列後ろのスペース削除

Excel2007を使用しています。

意図せずに、セルの文字列の後ろにスペースが入っている事があります。

大量のセルがある為、簡単な操作にてシート単位または列の単位にて、スペースをまとめて削除をしたいと考えています。

この操作の方法を教えてください。

Aベストアンサー

既出のご回答のとおり、全体的に綺麗にするには、TRIM 関数を使います。位置や個数に関らず全てのスペースを削除するには、置換(Ctrl+H)が簡単です。

文字列の右端にあるスペースを 1 つだけ削除したい場合は、次式で可能です。スペースでない文字は、削りません。幾つも右端にスペースが連なっている場合は、次式での処理を何回か繰り返せば、そのうちに全て削除されます。なお「" "," "」という部分は、全角と半角のスペースという意味です。

=left(a1,len(a1)-or(right(a1)={" "," "}))

No.2 さんも言及されていますが、文字列の最後に改行の文字列が付いている場合、右端はスペースではないと判断されてしまうので、注意してください。改行の文字列を削除するには、CLEAN 関数を使うか、または置換ダイアログにおける Ctrl+J のキー操作により除去します。

● =clean(a1)
または
●置換ダイアログの「検索する文字列」にカーソルを置いて Ctrl+J のキーを 1 回だけ押す。このとき見かけ上は何の変化もないが、目に見えない何かが入力されているので、気にしない。「置換後の文字列」には何も入力しないまま、「すべて置換」または「置換」ボタンにより実行すると、改行が除去される。

既出のご回答のとおり、全体的に綺麗にするには、TRIM 関数を使います。位置や個数に関らず全てのスペースを削除するには、置換(Ctrl+H)が簡単です。

文字列の右端にあるスペースを 1 つだけ削除したい場合は、次式で可能です。スペースでない文字は、削りません。幾つも右端にスペースが連なっている場合は、次式での処理を何回か繰り返せば、そのうちに全て削除されます。なお「" "," "」という部分は、全角と半角のスペースという意味です。

=left(a1,len(a1)-or(right(a1)={" "," "}))

No.2 さんも言及...続きを読む

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。


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

人気Q&Aランキング