[[20161024152957]] 『)(←半角カッコです)が消えない』(チナスキー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『)(←半角カッコです)が消えない』(チナスキー)

 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.