web-dev-qa-db-ja.com

スプレッドシート(​​Excel、Googleドキュメントなど)、カンマで区切られた値を抽出

1つのセルに次のような値があります

_4,8,2
_

_A1_セルにあるとしましょう

内側の_8_(2番目のコンマ区切り値)をこのセルからセルB1に取得するにはどうすればよいですか?

_=?_

=SPLIT(A1, ",")で試しましたが、これにより値が分割され、複数のセルに書き込まれます。

何か案は ?

7
astropanic

Googleスプレッドシートの場合:

=INDEX(SPLIT(A1,","),2)

ここで、2は必要なインデックスです。

enter image description here


Excelの場合:

=TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",999)),(2-1)*999+1,999))

またはこの配列数式:

=INDEX(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",999)),(ROW(INDIRECT("1:" & LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))-1)*999+1,999)),2)

配列数式であるため、編集モードを終了するときに、EnterではなくCtrl-Shift-Enterで確認する必要があります。正しく行われると、Excelは数式の周りに{}を配置します。

再度、2を目的のインデックスに置き換えます。

![enter image description here

9
Scott Craner

4,8,2

各数値の数式。

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

出典: https://www.ablebits.com/office-addins-blog/2016/06/01/split-text-string-Excel/

注:これは、コンマで区切られた3つの数値に対してのみ機能します。

5
Steven

ExcelでMidを使用できます。次の数式は、最初の「、」と2番目の「、」を見つけて、その間の値を抽出します。
=MID(A1,FIND(",",A1,1)+1,FIND(",",SUBSTITUTE(A1,","," ",1),1)-1-FIND(",",A1,1))
値が1桁以上の場合

3
yass