[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Excelのマクロを使用して条件に合ったデータを取り出したい』(JIN)
仮にA列にデータがあり
「☆」と「□」が入っているデータに対してB列に区分を付ける(「1」や「あり」でも可)
「□」しか入ってない場合は、スルーする様な事はできますか?(「ブランク」や「0」でも可)
☆株式会社□部長様
株式会社□部長様
この場合は、「☆株式会社□部長様」は、1
この場合は、「株式会社□部長様」は、0 の様に
また、その条件を増やすことが可能でしょうか?
「〇」「●」「◎」「△」「▽」「▲」「▼」「□」「■」「◇」「◆」「☆」「★」
実際にはこの記号に人の名前や言葉などを入れます。
□しか入ってない場合は、「ブランク」や「0」
それ以外の記号が入っている場合は、「1」や「あり」
どの文言も入ってない場合も同様に□しか入ってない場合と同じ扱い
このようにしたいと思っています。
この様なマクロの式が可能でしたら宜しくお願いします。
< 使用 Excel:unknown、使用 OS:unknown >
「1」や「あり」になるものを選択して区分けして
最後に「□」しかない物を手動で省いてました。
しかし、毎日行う作業の為、自動でできたらと思い投稿しました。
(JIN) 2021/12/27(月) 15:01
あとはBとCをフィルコピーでできるはずです。
(ymkrs) 2021/12/27(月) 15:44
|[A] |[B] |[C] |[D]|[E]|[F]|[G]|[H]|[I]|[J]|[K]|[L] [1] |〇 |◎ |● |△ |▽ |▲ |▼ |■ |◇ |◆ |☆ |★ [2] |〇 |=MAX(IFERROR(FIND($A$1:$L$1,A2),0)) |=IF(B2>0,"1","0") | | | | | | | | | [3] |● |=MAX(IFERROR(FIND($A$1:$L$1,A3),0)) |=IF(B3>0,"1","0") | | | | | | | | | [4] |◎ |=MAX(IFERROR(FIND($A$1:$L$1,A4),0)) |=IF(B4>0,"1","0") | | | | | | | | | [5] |△ |=MAX(IFERROR(FIND($A$1:$L$1,A5),0)) |=IF(B5>0,"1","0") | | | | | | | | | [6] |▽ |=MAX(IFERROR(FIND($A$1:$L$1,A6),0)) |=IF(B6>0,"1","0") | | | | | | | | | [7] |▲ |=MAX(IFERROR(FIND($A$1:$L$1,A7),0)) |=IF(B7>0,"1","0") | | | | | | | | | [8] |▼ |=MAX(IFERROR(FIND($A$1:$L$1,A8),0)) |=IF(B8>0,"1","0") | | | | | | | | | [9] |■ |=MAX(IFERROR(FIND($A$1:$L$1,A9),0)) |=IF(B9>0,"1","0") | | | | | | | | | [10]|◇ |=MAX(IFERROR(FIND($A$1:$L$1,A10),0))|=IF(B10>0,"1","0")| | | | | | | | | [11]|◆ |=MAX(IFERROR(FIND($A$1:$L$1,A11),0))|=IF(B11>0,"1","0")| | | | | | | | | [12]|☆ |=MAX(IFERROR(FIND($A$1:$L$1,A12),0))|=IF(B12>0,"1","0")| | | | | | | | | [13]|★ |=MAX(IFERROR(FIND($A$1:$L$1,A13),0))|=IF(B13>0,"1","0")| | | | | | | | | [14]|□ |=MAX(IFERROR(FIND($A$1:$L$1,A14),0))|=IF(B14>0,"1","0")| | | | | | | | | [15]|★□|=MAX(IFERROR(FIND($A$1:$L$1,A15),0))|=IF(B15>0,"1","0")| | | | | | | | |
頂いた関数で実行したところ
□が関係なくB1に◎がある場合A列の◎の所で1と表示されます。
何か意味合い間違えてますでしょうか?
(JIN) 2021/12/27(月) 17:03
https://excel-doctor.jp/array-formula/
(参考) 2021/12/27(月) 20:25
B1セル =COUNTIF(A1,"*"&H$1&"*")*SIGN(SUMPRODUCT(COUNTIF(A1,"*"&H$2:H$50&"*")*(H$2:H$50<>"")))
下にコピー
<結果図> 行 _________A_________ _B_ _C_ _D_ _E_ _F_ _G_ _H_ _____I_____ 1 ☆株式会社□部長様 1 □ 必須 2 株式会社□部長様 0 ○ 一つは必要 3 □株式会社☆部長様 1 ◎ 一つは必要 4 ● 一つは必要 5 △ 一つは必要 6 ▽ 一つは必要 7 ▲ 一つは必要 8 ▼ 一つは必要 9 ■ 一つは必要 10 ◇ 一つは必要 11 ◆ 一つは必要 12 ☆ 一つは必要 13 ★ 一つは必要 14
(半平太) 2021/12/27(月) 21:40
cntl+Shift+Enterって初めて使いました…
これは何なのですか?
(JIN) 2021/12/28(火) 09:42
>『Excelのマクロを使用して マクロで作ってみました。 Sub Test() Dim c As Range, ary As Variant
For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp)) c.Offset(, 1).Value = 0 For Each ary In Array("〇", "●", "◎", "△", "▽", "▲", "▼", "■", "◇", "◆", "☆", "★") If InStr(c.Value, "□") > 0 And InStr(c.Value, ary) > 0 Then c.Offset(, 1).Value = 1 Exit For End If Next Next End Sub
(ピンク) 2021/12/28(火) 11:15
半平太さんのも新しい方法で勉強になりました!
(JIN) 2021/12/28(火) 17:55
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.