[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『)(←半角カッコです)が消えない』(チナスキー)
A1セルにC-1-5(3.5m)、A2セルにC-1-6(6m)、A3セルにD-3-3(5.25m)、、、というように、 「ハイフンで区切られた地点名(とその深度)」がひとつのセルに書かれており、A列に列記されています。
B1セルにC-1-5、C1セルに3.5mと分けて入力したいのですが、なぜか「)」半角のカッコが表示されてしまいます。
関数は以下を入力しました。
B1=MID(A1,1,FIND("(",A1)-1)(→こちらは「A-1-1」とちゃんと拾うことができました) C1=MID(A11,7,FIND(")",A11)-1)(→こちらがなぜか「3.5m)」というように「)」まで拾ってしまう)
地点名はA-1-1のように6文字というのは固定です。 深度は3.5mだったり、5.25mだったり、文字数は一定ではありません。
識者の方々、間違いをご指摘いただけませんでしょうか。。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
ヘルプを見ると
>MID(文字列, 開始位置, 文字数)
だから、
=MID(A1,7,LEN(MID(A1,7,LEN(A1)))-1)
こんな感じでLen関数で切り出す文字数を数えないといけないのでは?
(まっつわん) 2016/10/24(月) 16:00
=MID(A1,7,FIND(")",A1)-7) でも。 (bi) 2016/10/24(月) 16:01
C1の式が =MID(A11,7,FIND(")",A11)-1) ということは B1セルに抜き出す部分は必ず5桁なのだろうか?
もしそうであればB1セルの式は
=LEFT(A1,5) で構わないと思うが。
もし5文字と限らないのであればC1セルの式は =MID(A1,LEN(B1)+2,FIND(")",A1)-LEN(B1)-2) で。 あと、B1セルの式、必ず一文字目から抜き出すのであればLEFT関数が使える。 =LEFT(A1,FIND("(",A1)-1) (ねむねむ) 2016/10/24(月) 16:14
まっつあんさま ありがとうございます! すごいです、確かにLEN関数をはさめばできました!
biさま ありがとうございます! できました、、しかし、どうして「-7」が出てくるのかが、わたくしには理解ができませんでした。。 よろしければその点、ご教授いただけませんでしょうか、、?
ねむねむさま 先日もありがとうございました(涙)
そのとおりでございますーーーー! 必ず1文字目から抜き出すゆえに、C1セルに、 =MID(A11,7,FIND(")",A11)-1) と入力しておりました。。
小難しく考えずに、B1セルは、 =LEFT(A1,5)にします。
そして、、biさまのご回答への質問と重複するのですが、、どうして、「地点数+2」分を最後に「-」するのでしょうか、、?
わたくしには考えが及びませんです。。
(チナスキー) 2016/10/24(月) 16:33
MID関数の構文は MID(文字,抜出開始文字位置,抜出文字数) になる。
ここで文字が C-1-5(3.5m) だった場合、 FIND(")",A11) は1文字目からの「)」までの文字数を返す。 上記でいえば11。
対してMID関数で与えないといけないのは7文字目から数えた「)」までの文字数なので先頭から数えた文字数から7を引くことで 7文字目から数えた文字数に変換している。 (ねむねむ) 2016/10/24(月) 16:41
ねむねむさま 詳しく解説してくださりありがとうございます!
そうなのですね、、ああ、わたくしの考え方の浅さがよくわかりました。 となると、B1の式はほんとに、とっても、回りくどいですよね、、すみません。
ねむねむさまの式は、地点数が5文字でないときにも使うことができますね、 読めば読むほど応用の効く式だと思いました。
B1セル、C1セルともども、ねむねむさまの式を使わせていただきます! (チナスキー) 2016/10/24(月) 17:22
FIND(")",A1) って LEN(A1) でよさげなんで。
C1 =MID(A1,7,LEN(A1)-7) C1 =MID(A1,LEN(B1)+2,LEN(A1)-LEN(B1)-2) (GobGob) 2016/10/24(月) 18:13
GobGobさま 遅くなり申し訳ありません。ご回答ありがとうございます。 おっしゃるとおり、「)」は必ず最後にくるので、今回はFIND関数を使わなくてもいいですね!
ただ、エクセル初心者のわたくしにとって、たしかにその場の答えを知るのは大切なのですが、 汎用性の高い式をどのように作成すればいいのか知りたく、ご質問をさせていただきました。
今回は「)」を探し出して、でしたが、MID、FIND、LEN関数を組み合わせて答えを導き出す方法が知れて、 お教えくださったみなさまに感謝です。
今後は、
地点名の文字数は =LEN(B1) )までの文字数は =FIND(")",A1) 深度を抜き出すには =MID(A1,LEN(B1)+2,FIND(")",A1)-LEN(B1)-2)
と、関数の意味をよーーくよく考えながら、落ち着いて、作業をすすめたいと思います。 最後に、、セル名等が一貫しておらず、申し訳ありませんでした。。 (チナスキー) 2016/10/25(火) 11:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.