0

私はExcelで作業しており、次の式があります:

=IF(B9="1","1/1",IF(B9="2","1 & 2",IF(ISNUMBER(SEARCH("/",B9)),B9,
IF(ISNUMBER(SEARCH("-",B9)),LEFT(B9,FIND("-",B9)-1)&" thru 
"&RIGHT(B9,FIND("-",B9)-1),"1 thru "&VALUE(B9)))))

where B9="9-24"

この数式が出力されるのはなぜ"9 thru 4"ですか?

「9~24」を出力してほしい。if B9="18-24"たとえば、この式は正しく吐き出されるため、奇妙"18 thru 24"です。

ただし、ダッシュの前の数字が 1 桁の数字の場合は問題があるようです。そして、私は立ち往生しています。

4

3 に答える 3

6

したがって、実際に関連するその長い式のビットは次のとおりです。

LEFT(B9,FIND("-",B9)-1) & " thru " & RIGHT(B9,FIND("-",B9)-1)

B9 にテキスト "9-24" (引用符なし) が含まれている場合、FIND("-",B9)2 が返されます。

だからあなたの式は LEFT(B9,1) & " thru " & RIGHT(B9,1)

これにより、左端の 1 文字と右端の 1 文字が得られるため、「9 ~ 4」になります。

B9 にテキスト "18-24" (引用符なし) が含まれている場合、FIND("-",B9)3 が返され、左端の 2 文字と右端の 2 文字が得られます。

「-」の前後のセルの部分が必要な場合は、数式の「右」の部分を次のように変更する必要があります。

RIGHT(B9,LEN(B9) - FIND("-",B9))
于 2013-08-19T14:28:13.073 に答える
0

RIGHT()使用すべき場所を使用していますMID()。を使用するMID()には、ダッシュの後のすべてをキャプチャするのに十分な長さの 3 番目の引数が必要です。これは機能します:

=IF(B9="1","1/1",IF(B9="2","1 & 2",IF(ISNUMBER(SEARCH("/",B9)),B9,
IF(ISNUMBER(SEARCH("-",B9)),LEFT(B9,FIND("-",B9)-1)&" thru 
"&MID(B9,FIND("-",B9)-1,99),"1 thru "&VALUE(B9)))))
于 2013-08-19T14:27:06.803 に答える
0

この関数RIGHTは、文字列の右端の文字を返します。例えば:

RIGHT("hello", 1)

戻りoます。

関数では、次のことを行っています。

RIGHT(B9,FIND("-",B9)-1)

これは、右から使用する文字数として「-」マイナス1の位置をとっています。したがって、最初の数値の長さを 2 番目の数値の長さとして使用しています。

代わりに、次のようにする必要があります。

RIGHT(B9,LEN(B9)-FIND("-",B9))

これにより、「-」の後の右端の文字が取得されます。

于 2013-08-19T14:27:58.917 に答える