Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5802 / 13646 ツリー ←次へ | 前へ→

【48771】グループ分けをしたいのですが J 07/5/7(月) 21:19 質問[未読]
【48773】Re:グループ分けをしたいのですが kobasan 07/5/7(月) 21:58 発言[未読]
【48777】Re:グループ分けをしたいのですが ウッシ 07/5/8(火) 0:12 発言[未読]
【48778】Re:グループ分けをしたいのですが ponpon 07/5/8(火) 0:20 発言[未読]
【48789】Re:グループ分けをしたいのですが J 07/5/8(火) 20:16 発言[未読]
【48790】Re:グループ分けをしたいのですが ウッシ 07/5/8(火) 21:28 発言[未読]
【48791】Re:グループ分けをしたいのですが ponpon 07/5/8(火) 21:35 発言[未読]
【48794】Re:グループ分けをしたいのですが J 07/5/8(火) 22:14 お礼[未読]

【48771】グループ分けをしたいのですが
質問  J  - 07/5/7(月) 21:19 -

引用なし
パスワード
   こんばんは。
少し詰まってしまったので質問させてください。

A列
佐藤
田中
山田
三谷

田中
山田


とあるのですが、B列にグループ分けした結果を表示したい
と思っています。

佐藤さんと三谷さんは第一グループ
田中さんと山田さんは第二グループ
境さんは第三グループ
なので

A列    B列
佐藤  第一グループ
田中  第二グループ
山田  第二グループ
三谷  第一グループ
境   第三グループ
田中  第二グループ
山田  第二グループ
境   第三グループ
  
という結果にしたいのです。

sub グループ()
dim C as long
  C=worksheets("sheet1").range("A1:A8").find("佐藤",lookat:=xlpart).row
  if not status is nothing then  
    cells(C,2).value="第一グループ"
  do
   C.select
   set C=.find(C)
   loop while C.value="佐藤" and cells(C,2).value="第一グループ"
  end if
end sub

どう書き換えればいいのでしょうか。
どうぞ宜しくお願いします。

【48773】Re:グループ分けをしたいのですが
発言  kobasan  - 07/5/7(月) 21:58 -

引用なし
パスワード
   J さん こんばんは。

Findではないけど、Select Case くらいで簡単に。
VBAでなくても、IF関数でもできますが。

Sub test()
Dim r As Range
  For Each r In Worksheets("sheet1").UsedRange.Columns(1).Cells ' Range("A1:A8")
    Select Case r.Value
      Case "佐藤", "三谷": r.Offset(, 1).Value = "第一グループ"
      Case "田中", "山田": r.Offset(, 1).Value = "第二グループ"
      Case "境": r.Offset(, 1).Value = "第三グループ"
    End Select
  Next
End Sub

【48777】Re:グループ分けをしたいのですが
発言  ウッシ  - 07/5/8(火) 0:12 -

引用なし
パスワード
   こんばんは

>VBAでなくても、IF関数でもできます
の関数のセットをVBAですると、

Sub test()
  With Worksheets("Sheet1").Range("A1").CurrentRegion.Offset(, 1)
    .FormulaR1C1 = _
      "=IF(OR(RC[-1]=""佐藤"",RC[-1]=""三谷""),""第一グループ""," & _
      "IF(OR(RC[-1]=""田中"",RC[-1]=""山田""),""第二グループ""," & _
      "IF(RC[-1]=""境"",""第三グループ"","""")))"
    .Value = .Value
  End With
End Sub

【48778】Re:グループ分けをしたいのですが
発言  ponpon  - 07/5/8(火) 0:20 -

引用なし
パスワード
   こんばんは。

>VBAでなくても、IF関数でもできます
B1に
=IF(OR(A1="佐藤",A1="三谷"),"第一グループ",IF(OR(A1="田中",A1="山田"),"第二グループ",IF(A1="境","第三グループ","")))
後は必要なだけフィル

【48789】Re:グループ分けをしたいのですが
発言  J  - 07/5/8(火) 20:16 -

引用なし
パスワード
   kobasanさん、ウッシさん、ponpon さん

ご丁寧にありがとうございます。

続きで質問して申し訳ないのですが
あいまいなものにも使えるのでしょうか?

佐藤さんなら
佐藤太郎と書いていても佐藤だけであっても
第一グループにしようと思うのですが
佐藤*という風にアスタリスクではだめなのでしょうか?

よろしくお願いいたします。

【48790】Re:グループ分けをしたいのですが
発言  ウッシ  - 07/5/8(火) 21:28 -

引用なし
パスワード
   こんばんは

アスタリスク使わなくても、

Sub test1()
  With Worksheets("Sheet1").Range("A1").CurrentRegion.Offset(, 1)
    .FormulaR1C1 = _
      "=IF(OR(LEFT(RC[-1],2)=""佐藤"",LEFT(RC[-1],2)=""三谷""),""第一グループ""," & _
      "IF(OR(LEFT(RC[-1],2)=""田中"",LEFT(RC[-1],2)=""山田""),""第二グループ""," & _
      "IF(LEFT(RC[-1],1)=""境"",""第三グループ"","""")))"
    .Value = .Value
  End With
End Sub

【48791】Re:グループ分けをしたいのですが
発言  ponpon  - 07/5/8(火) 21:35 -

引用なし
パスワード
   B1に
=IF(OR(LEFT(A1,2)="佐藤",LEFT(A1,2)="三谷"),"第一グループ",IF(OR(LEFT(A1,2)="田中",LEFT(A1,2)="山田"),"第二グループ",IF(LEFT(A1,1)="境","第三グループ","")))

【48794】Re:グループ分けをしたいのですが
お礼  J  - 07/5/8(火) 22:14 -

引用なし
パスワード
   ウッシさん、ponponさん

ありがとうございました。
感謝いたします。

5802 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free