明けましておめでとうございます。宜しくお願いします。
エクセルの文字表示で、A列(A1~A20)に文字数の違う文字列が20行程入力されています。それを、A列(A1~A20)のセルに入力されてされている文字列から4文字だけ削除して、B列(B1~B20)に表示(入力)したいのですがどうすればいいのでしょうか?
例えば、A列(A1~A20)のセルにそれぞれ「今年は2008年です。etc.」とか「今年は2008年1月3日です。etc.」、、、など文字数の違った文字列が入力されているセルの右から4文字分「etc.」だけ削除してB列(B1~B20)に「今年は2008年です。」とか「今年は2008年1月3日です。」というふうに表示(入力)したいのです。テキストを読んでMID関数で出来るかなと思ったのですが、MID(文字列の、何文字目から、何文字分)というもので、文字列の左から何文字目を先頭に、何文字分を表示ということで、私のやりたい事の逆なのです。いい方法を教えて下さい。

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

A 回答 (6件)

=MID(A1,1,LEN(A1)-4)


では?
    • good
    • 11
この回答へのお礼

さっそくの回答有難うございます。そうですか。MID関数とLEN関数を合わせて使用するんですね。助かりました。今から、やってみます。

お礼日時:2008/01/03 13:12

ANo5さんの方法で


=SUBSTITUTE(A1,RIGHT(A1,4),"")

右から四文字を置き換え
    • good
    • 18
この回答へのお礼

ご丁寧に回答有難うございます。皆さんに教えて頂いた事を一つづつ行っていた所ですが、このSUBSTITUTE関数についてテキストを見てやる予定だったので大変、助かりました。さっそく、やってみます。有難うございました。

お礼日時:2008/01/04 10:13

文字列操作関数SUBSTITUTE(サブスティテュート)が良いのではないでしょうか。

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

さっそくの回答有難うございます。皆さんに教えて頂いた方法を今からひとつひとつやってみます。有難うございました。

お礼日時:2008/01/03 13:23

#2 Cupperです



あれ?
すでにまとめが入ってるけど気にせずRight関数を使った例をあげてみます
 #だってさ、LEFT関数、MID関数ときたらやっぱり次はRIGHT関数でしょ
こんな面倒なことする必要はありませんが、こんな事もできると言う例として参考にしてください

=SUBSTITUTE(A1,RIGHT(A1,4),,1)
=SUBSTITUTE(A1,RIGHT(A1,4),,(LEN(A1)-LEN(SUBSTITUTE(A1,RIGHT(A1,4),)))/4)

これは文字列から指定した文字列(右4文字)を空白文字に置換えることで実現しています
 ※SUBSTITUTE関数についてはExcelのヘルプを参照してください
二つ目の長い数式は、右4文字と同じ文字列が他にも存在した場合を考慮した物です
元の文字列から、問答無用で指定した文字列を空白に置換えた場合の文字数を引き算で計算しています
コレを4で割れば、一番最後に出てきた文字列(すなわち一番右)が何番目に出てくるか分かりますので
右4文字だけを指定して空白文字に置き換えることができます


ロジカルな遊びですので真似しなくてもOKです
    • good
    • 1
この回答へのお礼

再度のご教示有難うございます。それも合わせて勉強させて貰います。

お礼日時:2008/01/03 13:21

もう回答は出ているが、案外易しい問題です。


セルの文字列の長さは=LEN(A1)で求められる。
右端の4文字を省くのだから、文字列の先頭から左部分を採るLEFT関数を使う。LEFT関数は文字数だけを指定するので
=LEFT(A1,LEN(A1)-4)
ーー
文字列で使える関数はそう多くない
MID、LEFT、RIGHT、LEN((それぞれBつき、なしとあり)、TRIMなど
なのでまとめて勉強のこと
    • good
    • 1
この回答へのお礼

親切丁寧な回答有難うございます。皆さんに教えて頂いた方法を今からさっそくひとつひとつやってみます。有難うございました。

お礼日時:2008/01/03 13:19

=LEFT(A1,LEN(A1)-4)


では?
    • good
    • 2
この回答へのお礼

さっそくの回答有難うございます。そうですか。関数を合わせて使用するんですね。助かりました。今から、やってみます。

お礼日時:2008/01/03 13:10

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

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

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

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

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

Qエクセルで下3桁を切り捨て

エクセルのセルの書式設定の表示形式で、
下3桁を切捨てて、なくすことは可能ですか?
123456→123、456789→456としたいわけです。

これが無理なら、小数点以下を切り捨てにする
表示形式はありますか?123.456→123、456.789→456

あくまで、セルの書式設定の表示形式で行いたいです。

Aベストアンサー

123.456を123 と表示するには(数値は123.456のまま)

セル選択 →右クリック →セルの書式設定
 →表示形式で数値 →小数点以下の桁数を0にする

123456を123 と表示するには(数値は123.456になる)
1000で除算して小数点以下を表示しないようにする

エクセル2003ですが・・・

Q文字列(セル)から一部の文字だけ削除する方法

質問させて頂きます。

エクセル等で下記のような編集をしたいと考えております。

A列      A列
12345     123
67890     678
01234  ⇒  012
56789     567
98765     987

ようは、右側の2文字などを指定して削除をする方法です。

少し説明が分かり辛いかもしれませんが、もし、分かりましたら、ご教授いただければ、幸いです。

どうぞ、宜しくお願い致します。

Aベストアンサー

右側の2文字を削除するなら、セルA1に文字が入っているとき
=LEFT(A1,LEN(A1)-2)
とすれば、取り出せます。
「LEFT」関数は文字列の左側から指定文字数分取り出す関数。
「LEN」関数は、指定文字列の長さを計算してくれる関数です。
なので、左側から「文字数-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エクセル 文字列から右3文字を除いて文字列を取り出したい

エクセル2003です
例えば
「東京のお母さん(A)」と入力されたセルから「(A)」を除いて「東京のお母さん」を取り出したい。
なお、「(A)」は、3文字に確定しているが、「東京のお母さん」の文字数は、7文字より多い場合又は少ない場合があります。

左側の文字数が確定していれば、=LEFT(A1,7)で取り出せますが文字数が不動の場合の取り出し方を教えてください。

Aベストアンサー

=LEFT(A1,LEN(A1)-3)
かな。

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

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文字列の後ろから必要分だけ削除したい。

例1 Dim str As String = "あいうえお1234"

文字列の中の1234だけ削除したい場合は、
str = str.Remove(5,4)
という風に、5文字目の後から4文字削除にすればよいのですが、

例の"あいうえお"の部分の長さが毎回処理する度に異なる場合は、
文字列の頭から何文字目という指定ができないので、”後ろから4文字を削除したい”となります。その場合は、どのようなプロパティを使えばいいのでしょうか。

.NET環境です。

Aベストアンサー

Length(str)で文字数を取得できますので、後ろから4文字目は先頭から何文字目かは計算できると思いますが、どうでしょうか?

Qエクセルのセル文字列末尾だけを削除する方法ありますか?

こんにちは。
エクセルで各セルに
------------------------
山田さん
鈴木
田中さん
木村さんと川村さん
------------------------
のような最後に”さん”がついている場合とついていない場合があります。

”さん”を置換して空白にすれば削除できるのですが、

木村さんと川村さん

のセルの”木村さん”の”さん”は削除せず、セルの文字列末尾の”川村さん”の”さん”は削除したいのです。

希望としては、
------------------------
山田
鈴木
田中
木村さんと川村
------------------------
の様な形にしたいのですが、何か良い方法ありましたらアドバイス頂けませんでしょうか?
よろしくお願いいたします。

Aベストアンサー

A1セルから順にデータがあるとして、
=IF(RIGHT(A1,2)="さん",LEFT(A1,LEN(A1)-2),A1)
で出来ると思います。

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

どうぞよろしくお願いいたします。

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む


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

人気Q&Aランキング

おすすめ情報