アレルギー対策、自宅でできる効果的な方法とは?

Windows8.1、Excel2013です。

セル内に同一の文字列が複数出てくる場合に2つめ以降を全て削除したいです。
該当の文字列は複数ありますが、限定されています。

例えば

ABC犬DEやぎGH犬IJK山羊LM犬N
↓2回目以降の「犬」「やぎ」を削除
ABC犬DEやぎFGHIJKLMN

わかりにくくて申し訳ございませんが、初心者のためお知恵拝借できないでしょうか?

A 回答 (1件)

事例が1つだけしか紹介されていないのに その事例がおかしいものだと


どういう条件なのかさっぱり分からなくなります。

> ↓2回目以降の「犬」「やぎ」を削除
> ABC犬DEやぎFGHIJKLMN
「ぎ」と「G」の間に「F」が追加された理由は何ですか?
「やぎ」が削除になる理由は何ですか?
その結果として「山羊」が削除されたのは何故ですか?

> わかりにくくて申し訳ございませんが
わかりにくいと分かっているなら もっと丁寧に説明すべきかと思います。
質問のわかりにくさは初心者かどうかの問題ではないので。
    • good
    • 1
この回答へのお礼

大変失礼しました。
はじめての投稿でうまく投稿できずに触ってるうちにおかしくなってしまったようです。
今返信を書いていてもどうもうまくできないので一旦閉めさせていただきます。
ご指摘ありがとうございました。

お礼日時:2017/07/13 23:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QExcelの関数で名前に対応する日付を抜き出すには(画像追加しました)

こんにちは、すこし困っています。
Excelで図のような表を作成しています。
H2,I2,J2(場合によってはK2,L2~)に
左の表から山本さんが記載されている日付を黄色のように自動で抜き出したいのですが
そのような関数はありますでしょうか?
よろしければアドバイスをいただければ嬉しいです。

Aベストアンサー

No.2です。

>列の名前を消しますとHIJ列が1900年1月0日になります。

空白セル=「0」となりますので、そのシリアル値が表示されてしまいます。
少しだけエラー処理を加えます。

H2セルの数式(前回同様、配列数式です)を
=IF($G2="","",IFERROR(INDEX($A$1:$A$100,SMALL(IF($C$1:$E$100=$G2,ROW($A$1:$A$100)),COLUMN(A1))),""))

としてみてください。m(_ _)m

Qexcelで条件に合うよう、複数のセルの合計を求めたい

例えば、次のように並んでいるセルの数値があるとします。

1515
2748
540
5509
2195
680
7142
305
5042
530
667
325
9950
4800

その合計が30000以上で、かつ、最小の数字となるよう、複数のセルを選択したいと思いますが、これを実現できる関数はありますか?

Aベストアンサー

いわゆる「ナップザック問題」と呼ばれる種類の問題になると思います。

14個を選択する/しないなら、総当りしても16384個ですから、力技でも行けるかも。
画像を参考に、
1行目にデータの数値を横並び。
2行目に0~13の固定値を右から
3行目に2の0乗~2の13乗(8192)の固定値を右から
A列に0~16383の固定値
で、

B4:O16387の範囲に、
B4:=MOD(INT($A4/B$3),2)
をコピペして2進数の各桁の値を

P4:P16387の範囲に、
P4:=SUMPRODUCT($B$1:$O$1,B4:O4)
をコピペして、2進数の各桁のビットとデータの数値の積和

で、全16384通りの計算が行われるので、A4:末尾を選択して並べ替えすると、
合計が30002となる、
1515
2748
2195
680
7142
305
667
9950
4800
が確認できるとか。

--
もっと数値の数が増えると、この方法では厳しいので、

ナップザック問題をExcelで解く
http://www.geocities.co.jp/SiliconValley-Oakland/8139/

みたいなプログラムで解くような事になります。


条件が違うのでプログラムはそのまま使えませんが、似た質問。

エクセルで、「袋詰め問題」を解きたい - Excel(エクセル) 解決済 | 教えて!goo
https://oshiete.goo.ne.jp/qa/1255891.html

いわゆる「ナップザック問題」と呼ばれる種類の問題になると思います。

14個を選択する/しないなら、総当りしても16384個ですから、力技でも行けるかも。
画像を参考に、
1行目にデータの数値を横並び。
2行目に0~13の固定値を右から
3行目に2の0乗~2の13乗(8192)の固定値を右から
A列に0~16383の固定値
で、

B4:O16387の範囲に、
B4:=MOD(INT($A4/B$3),2)
をコピペして2進数の各桁の値を

P4:P16387の範囲に、
P4:=SUMPRODUCT($B$1:$O$1,B4:O4)
をコピペして、2進数の各桁のビットとデータの数値の積...続きを読む

Qエクセルの重複データを見つけて統合したいです。

みなさんお忙しいところすみません、教えてください。

AとA‘という2つの表があります。データは行で1700件ほどです。
どちらの表にも
エクセルのA列は識別番号で共通の数字が並んでいます。

Aの表には、ABCDEの列で作られています。
A‘の表にはABCDEは同じ内容のセルで、FGH列は別な内容のセルがあります。

A列の識別番号の1700件のなかで、ABCDEを持つ人に、FGHを持つ人を
合成させるためには

どのようにしたらいいでしょうか。

Aベストアンサー

シート名に'は使え無いので
A表をSheet1、A'表をSheet2とすると

Sheet1のF2、G2、H2に以下の関数を入れて、下までコピペする
F2:=VLOOKUP(A2,Sheet2!$A$2:$H$1701,6,FALSE)
G2:=VLOOKUP(A2,Sheet2!$A$2:$H$1701,7,FALSE)
H2:=VLOOKUP(A2,Sheet2!$A$2:$H$1701,8,FALSE)

Qエクセル データ抽出の数式

お世話になります。
表①からリスト①に載っている人だけのデータを数式を使って抽出したいです。
(フィルタを使わないで、極力手作業にならない方法で)
表①は、スタッフ数百名分の全データとして、リスト①は、ある部署のスタッフとします。


表①
氏名 日付 ログイン ログオフ
田中 舞妓 2017/5/16 8:25 17:35
田中 舞妓 2017/5/17 8:18 17:35
田中 舞妓 2017/5/18 8:15 17:35
田中 舞妓 2017/5/19 8:29 17:34
田中 舞妓 2017/5/22 8:16 17:33
三田 建造 2017/5/23 8:18 17:39
三田 建造 2017/5/25 8:29 17:38
三田 建造 2017/5/26 8:02 17:31
三田 建造 2017/5/29 8:24 17:32
三田 建造 2017/5/30 8:22 17:33
牧 重三 2017/5/31 8:29 17:31
牧 重三 2017/6/1 8:17 17:35
牧 重三 2017/6/2 8:18 17:41
牧 重三 2017/6/5 8:19 17:31
牧 重三 2017/6/6 8:18 17:41
長岐 知美 2017/6/7 8:29 17:34
長岐 知美 2017/6/8 8:18 17:36
長岐 知美 2017/6/9 8:15 17:34
長岐 知美 2017/6/12 8:29 17:32
篠田 亜紀 2017/5/21 8:16 17:32
柿田 輝未 2017/5/28 8:18 17:17
荒元 耕平 2017/6/4 8:22 17:32
佐田 容子 2017/6/11 8:21 17:46
藤島 澄人 2017/6/12 8:24 17:59
藤島 澄人 2017/6/13 8:22 17:41
藤島 澄人 2017/6/14 8:29 17:28
藤島 澄人 2017/6/15 8:23 17:30
藤田明則 2017/5/16 8:29 17:34
藤田明則 2017/5/17 8:26 18:15
藤田明則 2017/5/31 15:30 0:36


リスト①
田中 舞妓
牧 重三
藤島 澄人
藤田明則

[完成]
氏名 日付 ログイン ログオフ
田中 舞妓 2017/5/16 8:25 17:35
田中 舞妓 2017/5/17 8:18 17:35
田中 舞妓 2017/5/18 8:15 17:35
田中 舞妓 2017/5/19 8:29 17:34
田中 舞妓 2017/5/22 8:16 17:33
牧 重三 2017/5/31 8:29 17:31
牧 重三 2017/6/1 8:17 17:35
牧 重三 2017/6/2 8:18 17:41
牧 重三 2017/6/5 8:19 17:31
牧 重三 2017/6/6 8:18 17:41
藤島 澄人 2017/6/12 8:24 17:59
藤島 澄人 2017/6/13 8:22 17:41
藤島 澄人 2017/6/14 8:29 17:28
藤島 澄人 2017/6/15 8:23 17:30
藤田明則 2017/5/16 8:29 17:34
藤田明則 2017/5/17 8:26 18:15
藤田明則 2017/5/31 15:30 0:36

お世話になります。
表①からリスト①に載っている人だけのデータを数式を使って抽出したいです。
(フィルタを使わないで、極力手作業にならない方法で)
表①は、スタッフ数百名分の全データとして、リスト①は、ある部署のスタッフとします。


表①
氏名 日付 ログイン ログオフ
田中 舞妓 2017/5/16 8:25 17:35
田中 舞妓 2017/5/17 8:18 17:35
田中 舞妓 2017/5/18 8:15 17:35
田中 舞妓 2017/5/19 8:29 17:34
田中 舞妓 2017/5/22 8:16 17:33
三田 建造 2017/5/23 8:18 17:39
三田 建造 20...続きを読む

Aベストアンサー

こんばんは!

VBAになりますが、一例です。
↓の画像のように元データはSheet1にあり、
Sheet2のA列2行目以降に「リスト」を入力 → C~F列に表示するとします。

標準モジュールにしてください。

Sub Sample1()
Dim i As Long, lastRow As Long, wS As Worksheet
Dim myStr As String, myAry As Variant
Set wS = Worksheets("Sheet2")
lastRow = wS.Cells(Rows.Count, "C").End(xlUp).Row
If lastRow > 1 Then
Range(wS.Cells(2, "C"), wS.Cells(lastRow, "F")).Clear
End If
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
myStr = myStr & wS.Cells(i, "A") & ","
Next i
myAry = Split(myStr, ",")
With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("A1").AutoFilter field:=1, Criteria1:=Array(myAry), Operator:=xlFilterValues
If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
Range(.Cells(2, "A"), .Cells(lastRow, "D")).SpecialCells(xlCellTypeVisible).Copy wS.Range("C2")
End If
.AutoFilterMode = False
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

VBAになりますが、一例です。
↓の画像のように元データはSheet1にあり、
Sheet2のA列2行目以降に「リスト」を入力 → C~F列に表示するとします。

標準モジュールにしてください。

Sub Sample1()
Dim i As Long, lastRow As Long, wS As Worksheet
Dim myStr As String, myAry As Variant
Set wS = Worksheets("Sheet2")
lastRow = wS.Cells(Rows.Count, "C").End(xlUp).Row
If lastRow > 1 Then
Range(wS.Cells(2, "C"), wS.C...続きを読む

Q【追加質問】SUMIFとOFFSETの組み合わせについて 先日、下記にて質問をさせていただき解決した

【追加質問】SUMIFとOFFSETの組み合わせについて

先日、下記にて質問をさせていただき解決したのですが、一部ご教授いただいた数式で反映されない部分があり、原因がわからず再度質問させてください。

https://oshiete.goo.ne.jp/qa/9797530.html

前回質問添付画像参照。
合計の表のE68数量、E69売上、E70仕入、E73粗利についてはご教授頂いたSUMIFの式を、E71売上単価、E72仕入単価については平均単価を求めたいのでSUMIFをAVERAGEIFに変えて入力しましたが、反映されない部分がありました。
数量だけ反映されて、売上以下が数値が反映されなかったり、全て反映されなかったりと原因がわかりかねている状況です。
何が原因で反映されないのか?ご教授いただければ幸いです。

Aベストアンサー

>添付頂いた②の画像(前の商品のあと1行はさんで次の商品となります)が希望する表です。
となりますと、-10を-9に修正すればよいということでしょうか?

はい、そうなります。
算出したい行(合計の数量の行)の9行前が最後の商品の数量になりますので、-9になります。

Qエクセルシート間の数値抽出方法

どなたかとの関連質問ですが、=IFERROR(・・・数式にて
シート1に随時入力(担当者、品名、価格)しながらデータベースとして保存しつつ、
同時進行で、別シート2に該当担当者ベースで残り品名、価格を自動抽出する方法を教えて下さい。
*シート1からシート2への抽出はできましたが、
 引き出された数値が、該当担当者以外の名前も含まれていたり、データベースとの件数が一致しません。
*例:平成君のみの抽出  シート1           シート2 結果
 ・平成君 ペン 100円          平成君 ペン 100円            
 ・昭和君 万年筆 1000円        平成君 消しゴム 80円
 ・平成君 消しゴム 80円      →  大正君 カーテン 2000円
 ・大正君 カーテン 2000円       
 ・平成君 鉛筆 300円 
 と、なります。ご教示下さい。

Aベストアンサー

肝心な数式を提示してくれっていうの忘れてました。(^^;
1行目以外マクロの記録でフィルタアドバンスドフィルター(添付図参照)
Sheet2!A2セルを変更すると抽出されます

Sheet2のシート見出しを右クリック - コードの表示
下記貼り付け
Private Sub Worksheet_Change(ByVal Target As Range)
    '↓1行だけ追加
    If Target.Address <> "$A$2" Then Exit Sub

    'Sheet2を選択(不要だけど一応)
    Sheets("Sheet2").Select
    '4行目を選択
    Rows("4:4").Select
    '[Ctrl]+[Shift]+[↓]
    Range(Selection, Selection.End(xlDown)).Select
    '行の削除
    Selection.Delete Shift:=xlUp
    'A2セル選択
    Range("A2").Select
    ’フィルタオプションの設定
    Sheets("Sheet1").Columns("A:D").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4"), Unique:=False
End Sub

肝心な数式を提示してくれっていうの忘れてました。(^^;
1行目以外マクロの記録でフィルタアドバンスドフィルター(添付図参照)
Sheet2!A2セルを変更すると抽出されます

Sheet2のシート見出しを右クリック - コードの表示
下記貼り付け
Private Sub Worksheet_Change(ByVal Target As Range)
    '↓1行だけ追加
    If Target.Address <> "$A$2" Then Exit Sub

    'Sheet2を選択(不要だけど一応)
    Sheets("Sheet2").Select
    '4行目を選択
    Rows("4:4").Select
    '[Ctrl]+[Shift]+[↓]
...続きを読む

Qexcel If関数についてのご質問 セルM4に 下記のように関数を入力しました IF(Count

excel If関数についてのご質問
セルM4に
下記のように関数を入力しました

IF(Count IF(O12:O47,"合格”),"合格”,"不合格”)
この関数だと常に不合格と表示されるのですが例えばO12が空白であれば表示をしないという関数は出来ないでしょうか
アドバイスお願いいたします

Aベストアンサー

>この関数だと常に不合格と表示されるのですが
どうして、常に不合格と表示されるのですか?
常に不合格となるなら、これらの式は不要ではないですか?

>O12が空白であれば表示をしない
if(O2="","",IF(Count IF(O12:O47,"合格”),"合格”,"不合格”))
ではだめなのかな?

Qエクセル2013のセルに文字を入れると、勝手に2行になってします

まれに、起こる現象で、これまで解決しないのでそのままにしていたのですが、エクセル2013のセルに文字を入れると、勝手に2行になってしまうことがあります。もう一度、セルを空にして、文字を書き直しても、あるセルだけは、2行になってしまいます。これを改善する方法を教えて下さい。

Aベストアンサー

その現象が起こるセルをアクティブ(緑の四角で囲んだ状態)にしてから
右クリック→セルの書式設定→配置にして、「折り返して全体を表示する」にチェックが付いていたら外してください。

Qエクセルで三つの条件での参照する方法。 お世話様です。 コード 項目 7月 8月 9月 10月 11

エクセルで三つの条件での参照する方法。
お世話様です。

コード 項目 7月 8月 9月 10月 11月 12月
1234 野菜 8 11
9876 肉類 5 4
小計 5 8 11 4
2345 魚類 12 8
3456 麺類 1 6
小計 1 6
合計

このようなデータがあります。
コードは1000くらいあります。
小計も100くらいあります。

別シートにこれよりも項目が多い表があります。
この表に上記データを反映させたいです。

作業列を作りコードと項目を&で合体させ
ます。
それを検索値とし、別シートの7月の列にvlookup関数にします。
コードの列をフィルタ掛けし小計、合計を非表示にします。
貼り付け。

これを月別に貼り付けしようと思います。
他に効率良い方法ありますか?
言葉足らずな点は補足します。
よろしくお願いいたします。

エクセルで三つの条件での参照する方法。
お世話様です。

コード 項目 7月 8月 9月 10月 11月 12月
1234 野菜 8 11
9876 肉類 5 4
小計 5 8 11 4
2345 魚類 12 8
3456 麺類 1 6
小計 1 6
合計

このようなデータがあります。
コードは1000くらいあります。
小計も100くらいあります。

別シートにこれよりも項目が多い表があります。
この表...続きを読む

Aベストアンサー

素朴な確認をば。
小計行の数値 5、8、11、4 はどのセルとどのセルとの小計になっているの?
「あれは、単に書いたまでで、実はデタラメ!」なんて言わないでネ。回答者は真剣なので。

QexcelのFalseとTrue

添付図は赤の間違い個所を発見しようとするものです。
K列はあらかじめソートされており、同じものが続いています。
L列はK列に対する属性です。
従って、L399とL403は間違いで、これを発見しようとしています。
M列はM398を下へコピーしたもので、M400とM404はなぜTRUEとならないのでしょうか。
正と正が合わさると、虚になっています。

しかし、これが仕様なら間違い個所を発見する方法を考えてもらえませんか。
なお、ソフトはExcel2013、Win10です。

Aベストアンサー

>実際のデータは夫々E列、G列、K列となっています。
>マクロのKLMを単純にEGKに置き換えてよいでしょうか。

それでOKです。
"K"->"E"
"L"->"G"
"M"->"K"
に置き換えてください。
それで実行してみてください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報