• ベストアンサー

住所の都道府県とそれ以降をわけるには?

arai163の回答

  • arai163
  • ベストアンサー率22% (214/970)
回答No.1

RIGHT文に「*1」という算術式が必要でしたっけ。 間違えていたら御免なさい。

関連するQ&A

  • MID(A3,3,1)={"都","道","府",

    下記のエクセル関数について。 =RIGHT(A3,LEN(A3)-4+SUM((MID(A3,3,1)={"都","道","府","県"})*1)) MID(A3,3,1)={"都","道","府","県"})*1 この部分は、何を意味しているのでしょうか? 特に、イコールの機能が分かりません。 お手数ですが、よろしくお願いいたします。

  • Excel2010 都道府県以降抽出

    都道府県以降の抽出をどうしてもユーザー定義関数で作成したいです。 都道府県の抽出のはできました。 Function Extraction(住所文字列 As String) Dim strPref As String Dim N As Long strPref = Left(Trim(住所文字列), 3) Select Case strPref Case Is = "東京都", "北海道", "大阪府", "京都府" N = 3 Case Else N = InStr(Left(住所文字列, 4), "県") End Select If N > 0 Then Extraction = Left(住所文字列, N) Else Extraction = CVErr(3) '3:#VALUE! End If End Function よろしくお願いします。

  • 単位付きの合計金額をセル毎に振り分け

    いつもお世話になります。 Windows XP EXCELL2003 単位付きの合計金額をセル毎に振り分け見やすくしています。 現在、参照図(1)では百万単位で作成してうまくいきました。 但し位が十万 万 千となった時、参照図(2) この場合は十万の位ですが上手きゆきません。 エラーになります 下記に数式を表示していますのでどういう具合に修正すればいいかご指導を仰ぎたいです。 宜しく御願いします。 参考に D8 =IF($B$6<E$8,"\",E$8) E8 =MID(SUM(B3:B5),LEN(SUM(B3:B5))-6,1) F8 =MID(SUM(B3:B5),LEN(SUM(B3:B5))-5,1) G8 =MID(SUM(B3:B5),LEN(SUM(B3:B5))-4,1) H8 =MID(SUM(B3:B5),LEN(SUM(B3:B5))-3,1) I8 =MID(SUM(B3:B5),LEN(SUM(B3:B5))-2,1) J8 =MID(SUM(B3:B5),LEN(SUM(B3:B8))-1,1) K8 =MID(SUM(B3:B5),LEN(SUM(B3:B6)),1) という数式を入れています。

  • 【Excel】住所を分ける方法

    こんにちは DM発送用の名簿を整理しています。 F列に、住所欄に 都道府県 市町村 町名番地 建物名 号室 までが 一つのセルに入力されています。 小さめのタックシールの為、印字する際、 都道府県 市町村 町名番地の文字が、 12文字を超えると見にくくなります。 ※それを超えても文字を縮小して全体を印字します。 番地と建物名の間にスペースがあるので、そこで分けるようにして 建物名および号室は、H列に移動しました。 住所(都道府県 市町村 町名番地)の文字が12文字を超える場合、 町名のところでG列に分ける方法を教えて下さい。 東京都六王子市海山川町88-888 青空荘88号室 このような住所の場合、 青空荘88号室 はH列に移動しました。 東京都六王子市海山川町88-888 は、12文字を超えるため、 列を分けたいのですが、 東京都六王子市海山川町8 | 8-888 とならないように、 東京都六王子市海山川町| 88-888 若しくは、 東京都六王子市|海山川町88-888 となるようにしたいと思います。 Excel2013です。 よろしくお願いします。

  • Excel 住所分け

    都道府県列に 東京都渋谷区神宮前1-13-23 ●●●ハウス 東京都世田谷区南烏山5丁目11-3 千葉県柏市若柴178番地4柏葉キャンパス6F と入ってますそれを 都道府県 市区郡 以降の住所(町名・番地) ビル名 と分けたいです。↑は最初から入ってます。 番地とビル名の間はスペースあったりなかったり 番地の表示も色々です。 F列     G列         H列         I列        都道府県  市区郡   以降の住所(町名・番地)   ビル名 東京都   渋谷区   神宮前1-13-23        ●●●ハウス 東京都   世田谷区  南烏山5丁目11-3 千葉県   柏市    若柴178番地4         柏葉キャンパス6F

  • 全角文字と半角文字を判別して文字列を追加

    全角文字と半角文字が混合している文字列に文字を追加するプログラムを考えています。 仕様としては全角から半角に変わる際には全角文字の後ろに1234を、 半角から全角に変わるときは半角文字の後ろに4321をつけるというものです。 例1 文字列が「あxxxお」ならば出力結果は「あ1234xxx4321お」 そこで質問なのですが 文字列から全角文字と半角文字をプログラム上で判別して 上記のように出力するにはどうしたらいいんでしょうか? ヒント等ございましたらどうぞお願いします。 とりあえず作ってみた例1の結果を無理やり出力するプログラムのコードを載せておきます。 こちらをうまく改変してくださっても結構ですのでよろしくお願いいたします。 #include <stdio.h> #include <string.h> int main(void){ unsigned char str0[256] = "あxxxお", str1[256] = "1234",str2[256]= "4321"; unsigned int zh,hz, len0 = strlen(str0),len1=strlen(str1),len2=strlen(str2); printf("挿入前:%s\n",&str0); zh=2; //全角から半角に変わる位置 hz=5; //半角から全角に変わる位置 //1234を挿入/// memmove(&str0[zh+len1], &str0[zh], len0 - zh+1); memcpy(&str0[zh], str1, len1); //4321を挿入/// memmove(&str0[hz+len1+len2], &str0[hz+len1], len0); memcpy(&str0[hz+len1], str2, len2); printf("挿入後:%s\n",&str0); return 0; }

  • エクセル関数で住所から丁目番地、建物名を抽出したい

    エクセルで関数を使って、住所から、都道府県、市区町村、丁目番地、建物名をそれぞれ抽出するにはどうしたらよいですか? いま、C列に住所が入っています。 D列に、=LEFT(C3,4-SUM((MID(C3,3,1)={"都","道","府","県"})*1))という関数で都道府県を抽出しました。 F列に、=IF(E2="東京都", IF(COUNT(FIND({"東村山","武蔵村","羽村市"},LEFT(I2,3))), LEFT(I2,FIND("市",I2)), LEFT(I2,MIN(FIND({"市","区","町","村"},I2&"市区町村",2))) ), IF(COUNT(FIND({"今市市","四日市","八日市","廿日市"},LEFT(I2,3))), LEFT(I2,FIND("市",I2,FIND("市",I2)+1)), IF(IF(COUNT(FIND({"蒲郡市","大和郡","小郡市"},LEFT(I2,3))),"市",IF(COUNT(FIND({"余市郡","高市郡"},LEFT(I2,3))),"郡",MID(I2,MIN(FIND({"市","郡"},I2&"市郡",2)),1)))="市", IF(COUNT(FIND({"札幌市","仙台市","千葉市","横浜市","川崎市","名古屋","京都市","大阪市","神戸市","広島市","北九州","福岡市"},LEFT(I2,3))), LEFT(I2,FIND("区",I2)), LEFT(I2,FIND("市",I2,2)) ), IF(COUNT(FIND({"佐波郡玉村","恵那郡岩村","東宇和郡野","杵島郡大町","北松浦郡鹿"},LEFT(I2,5))), LEFT(I2,FIND("郡",I2)+3), LEFT(I2,MIN(FIND({"町","村"},I2&"町村",FIND("郡",I2)+2))) ) ) ) ) という関数を使って市区町村を抽出しました。 あとは、丁目番地と建物名を別々のセルに抽出したいです。 よきアドバイスをお願いいたします。 区切りに半角空いてるとかいうことはありません。 膨大な住所録を処理したいので、例外が多いのは使えません。 なかなか厳しい質問だとは思いますが、どうぞご教授くださいませ。よろしくお願いいたします。

  • Excel2010 住所5分割2

    以前の続きです。 教えて頂いたコードを少し変えたものです。 分割の仕方が変わりました。 変更前:「都道府県」「市区町村郡」「通称名」「○丁目」「番地ビル」 変更後:「都道府県」「市区郡」「町域名」「○丁目」「番地ビル」 住所はV列の5行目からですが5行目は入っていません。空白とが入り混じってます。 M列     N列      O列     P列      Q列    都道府県  市区郡     町域名    丁目      番地 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 「東京都」 「豊島区」   「東池袋」  「3丁目」  「1番1号」 「東京都」 「八王子市」  「子安町」   「4丁目」  「10番15号」 「神奈川県」 「川崎市高津区」 「明津」      「12番地メゾン美鈴」 'Option Explicit Option Compare Text DefInt A-Z ' Sub Macro2() ' Dim SplitData As Variant Dim SplitFlag As Variant Dim StringCheck As String Dim StringMatch As String Dim SubAddress As String Dim IY As Long ' Application.ScreenUpdating = False SplitData = Array("都,道,府,県", "市,区,郡", "", "丁目", "") SplitFlag = Array(-1, 1, 0, -1, 0) Application.ScreenUpdating = False ' For IY = 8 To Cells(Rows.Count, "V").End(xlUp).Row StringCheck = Cells(IY, "V") If StringCheck <> "" Then StringMatch = Split1(StringCheck, "0,1,2,3,4,5,6,7,8,9", -1) Parameter = Len(StringMatch) SubAddress = Mid(StringCheck, Parameter) StringCheck = Left(StringCheck, Parameter - 1) ' For ix = 0 To 4 StringMatch = SplitData(ix) Parameter = SplitFlag(ix) ' If StringMatch = "" Then Cells(IY, ix + 12) = StringCheck StringCheck = SubAddress Else StringMatch = Split1(StringCheck, StringMatch, Parameter) Cells(IY, ix + 12) = StringMatch Parameter = Len(StringMatch) StringCheck = Mid(StringCheck, Parameter + 1) End If Next ix End If Next IY End Sub ' Function Split2(StringCheck As String, StringMatch As String, Parameter) As String '  Paemater-:区切り文字のうち、先のものを有効とする。 '      +:区切り文字のうち、後のものを有効とする。 Dim SMatch As Variant Dim W1 As String ' SMatch = Split(StringMatch, ",") Max = -32768 ' For i1 = 0 To UBound(SMatch) W1 = SMatch(i1) ins = InStr(StringCheck, W1) * Sgn(Parameter) ' If ins <> 0 Then Max = WorksheetFunction.Max(Max, ins) End If Next i1 ' If Max <> -32768 Then Max = Abs(Max) - 1 + Len(W1) Split1 = Left(StringCheck, Max) End If Application.ScreenUpdating = True End Function 実行すると全ての京都府が都道府県名で「京都」で市区郡に「府長岡京市」と分割されてしまいます。 市区郡は全て「府長岡京市」ではなく住所で変わります。「府京都市中京区壬生辻町」など もう一つは市川市など同じ市区郡が入る住所はうまく分割されません。 「千葉県」「市」 「川市市川」 「三重県」「四日市」「市北浜田町」など 関数だとなんとなくできましたがVBAだとわかりません。 IF(M8="東京都",LEFT(N8,FIND("区",N8)),IF(IFERROR(MATCH(LEFT(N8,1),{"堺"},FALSE), IFERROR(MATCH(LEFT(N8,2),{"札幌","仙台","千葉","横浜","川崎","新潟","静岡","浜松","京都","大阪","神戸","岡山","広島","福岡","熊本"},FALSE), IFERROR(MATCH(LEFT(N8,3),{"相模原","名古屋","北九州"},FALSE), IFERROR(MATCH(LEFT(N8,4),{"さいたま"},FALSE),-1))))>0,LEFT(N8,FIND("区",N8)), IF(IFERROR(MATCH(LEFT(N8,2),{"郡山","市原","郡上","蒲郡","小郡","市川"},FALSE),-1)>0,LEFT(N8,3), IF(IFERROR(MATCH(LEFT(N8,3),{"四日市","廿日市"},FALSE),-1)>0,LEFT(N8,4), IF(IFERROR(MATCH(LEFT(N8,4),{"大和郡山市"},FALSE),-1)>0,LEFT(N8,5), LEFT(N8,IFERROR(FIND("郡",N8),FIND("市",N8))))))))

  • Excel 関数

    和暦を西暦にしたいです。 28/12/7→2016/12/7 10/12/26→1998/12/26 27/9→2015/9 5/6→1993/6 =(LEFT(G12,2)+1988)&MID(G12,3,LEN(G12-3)) この式だと5/6が1993/6とならず#VALUE!と出ます。 なぜですか。どうしたら1993/6になりますか。

  • マクロ記録実行で実行時エラー'1004'発生

    excel2010 B2セルに文字列が入っています。 文字と数値の混載です。 数値の位置は不定です。 L2のセルで、下記判定をします。 B2セルの文字列(約20文字程度)の左から4番目がドだったら、数値を抽出、ド以外だったら空白。 WEBで計算式があったので、それをそのままマクロの記録としました。 Range("L2").Select ActiveCell.FormulaR1C1 = _ "=IF(RIGHT(LEFT(RC[-10],4),1)=""ド"",MID(RC[-10],1/MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))/ROW(INDIRECT(""1:""&LEN(RC[-10]))),)),MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))*ROW(INDIRECT(""1:""&LEN(RC[-10]))),))-1/MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))/ROW(INDIRECT(""1:""&LEN(R" & _ "),))+1)*1,"""")" Range("L3").Select で記録されます。 上記を、マクロの実行すると実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。 と表示されます。 何がおかしいのでしょうか? シートで、マクロでなく、L2セルでF2リターンとする分には、数値が表示されます。 下記は、L2の中身です =IF(RIGHT(LEFT(B2,4),1)="ド",MID(B2,1/MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))/ROW(INDIRECT("1:"&LEN(B2))),)),MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))*ROW(INDIRECT("1:"&LEN(B2))),))-1/MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))/ROW(INDIRECT("1:"&LEN(B2))),))+1)*1,"")