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

エクセルでチェックボックスをつけた後、リンクしたセルが「TRUE」になった横のセルの文章をつなげて一つの文章にしたいのですが、どのような関数にすればよいのでしょうか。
イメージは、画像のA列のチェックボックスに、チェックした横のC列のセルの言葉を、セル「E2」につなげて表示したいです。
IF関数、VLOOKUP関数、CONCATENATE関数か「&」などを使うといいのかなとは考えましたが、どうしてよいかわからないので教えていただきたいです。
よろしくお願いいたします。

「エクセル 条件が一致する複数のセルを検索」の質問画像

A 回答 (2件)

[No.1お礼]へのコメント、


申し訳ない、説明が不十分でした。
提示した式は配列数式として入力しなければなりません。

「配列数式として入力」の意味
此処では式を例えば =SUM((A1:A10)*(B1:B10)) としておく
1.該当式をコピーして指定のセルに入力
 ̄ ̄(でも、まだ Enterキーを叩かない!)
2.Ctrl+Shift+Enter を「エイヤッ!」と叩き付け
3.[数式バー]を眺めて、下記のように、入力した式が { }で
 ̄ ̄囲まれていることを確認
 ̄ ̄ {=SUM((A1:A10)*(B1:B10))} ←配列数式!
    • good
    • 0
この回答へのお礼

大変にありがとうございました。
できました。お手数おかけしました。

お礼日時:2017/05/14 19:01

1.次式を入力したセル G1 を下方にズズーッとオートフィル


 ̄ ̄ =IFERROR(INDEX($C$1:$C$6,SMALL(IF($B$2:$B$6,ROW($B$2:$B$6),""),ROW(A1))),"")
2.セル E2 に式 =G2&G3&G4&G5&G6 を入力
    • good
    • 0
この回答へのお礼

とても早い回答ありがとうございました。
ただ大変申し訳ありませんが、オートフィルでドラッグをするとROWがA1、A2・・・となって何も返ってこなかったので、手でA1に打ち直してみました。しかし、そうすると、今度はチェックを入れても「C2」の「あい」しか返ってこず、つなげた文章が「あいあいあい・・・」というようになってしまいます。うまく説明できずにすみません。

お礼日時:2017/05/14 16:46

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

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

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

Qエクセルの空白の行を削除する方法

例えば

1行目 ああああ
2行目
3行目 いいいい
4行目
5行目
6行目 うううう

のように、2行目と4行目と5行目のように空白になっている
行を一気に削除する関数か何か方法があれば教えてくださいませ!

Aベストアンサー

手作業で良ければ、
1) 並べ替えで、2列目を優先にする。但し、並べ替えられてしまいます。
2) フィルターで、2列目を空白で選択して、その空白行をまとめて削除する。
ご参考まで。

Q2017.05.01を2017/05/1に変換するには

エクセルで例えば2017.05.01を2017/05/1に変換するには
どうすればいいのでしょうか?
ご教授お願い致します。

Aベストアンサー

こんばんは!

データが入っているセルを範囲指定 → メニュー → データ → 区切り位置 → 何もせずに
「次へ」を2回 → 「日付」を選択し → 「完了」

これが一番簡単だと思います。

※ 2017.05.01 は 2017/05/1 ではなく、2017/5/1 と表示されるはずですので
表示形式は好みで変更してください。m(_ _)m

Qエクセル 関数

エクセルの関数や条件付き書式を教えてください。

①画像のCDE列が、画像のように黄色く塗りつぶされるようにしたいです。
②画像のF列に、CDE列の中で、選択肢の中から指定したHIJ列に当てはまる数が出るようにしたいです。

よろしくお願いします!

Aベストアンサー

こんにちは!

規則性がよく判らないのですが・・・
① 条件付き書式については
同じ行のC~E列の中にH~J列データがあれば色を付ける!というコトだと解釈して・・・

↓の画像ではC2~E13を範囲指定 → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に
=COUNTIF($H2:$J2,C2)
という数式を入れ塗りつぶしの「黄色」にしています。

② 同じ行のH~J列データがC~E列にいくつあるか?をF列に表示するという解釈です。
(条件付き書式で色がついているセル数を求めるコトになる?)

F2セルに
=SUMPRODUCT((COUNTIF(H2:J2,C2:E2))*1)
という数式を入れフィルハンドルで下へコピーしています。m(_ _)m

Qエクセルデータをカンマ区切り、ダブルコーテーションで囲んだデータにする方法を教えてください

はじめまして。
仕事でエクセルデータをカンマ区切り、ダブルコーテーション囲みのテキストデータにする必要があります。

例)
”111”,"222","","","","666""

このように空白のセルもあり、そのセルもダブルコーテーションで囲みたいです。
VBAで変更する方法をどこかで見かけましたが、張り付けてみましたが、上手く動きませんでした。
超初心者ですので、わかりやすく教えていただけると有り難いです。

お手数をおかけしますが、宜しくお願い致します。

Aベストアンサー

Unicode 出力の件ですが、せっかく、個人用マクロブックに納められる(つもり)ので、それを、書き換えるよりも、後づけマクロのほうがよいかもしれません。一緒にしてしまうと、Unicodeのみになってしまいますから、それも望まないし……
とあれこれ考えて、単独マクロで、Unicodeファイル判別するプログラムもつけました。BigEndien も LittleEndienも別けますが、出力は、BigEndienだけです。
こういうのは、余計なものかもしれません。

'//
Public Sub Convert2UNICODE()
'シフトJISをUnicodeに替えるマクロ
Dim stream As Object
Dim stream2 As Object
Dim fname As Variant
Dim buf As Variant
Dim b() As Byte
Dim i As Long
fname = Application.GetOpenFilename _
 ("File (*.*), *.*", 1, "ファイルオープン")
 If VarType(fname) = vbBoolean Then Exit Sub
 Open fname For Binary As #1
   ReDim b(1 To 6)
    Get #1, , b
  Close #1
 For i = 1 To 6
 buf = buf & Hex(b(i))
 Next
 If buf Like "FFFE*" Or buf Like "FEFF*" Then
  MsgBox "ファイルはすでにUnicodeです。", vbExclamation
  Exit Sub
 End If
 '-------変換プログラム-----------
On Error GoTo ErrHandler
Set stream = CreateObject("ADODB.Stream")
  stream.Open
  stream.Type = 2
  stream.Charset = "shift_jis"
  stream.LoadFromFile fname

Set stream2 = CreateObject("ADODB.Stream")
  stream2.Open
  stream2.Charset = "unicode"
  stream.CopyTo stream2
  stream2.SaveToFile (fname), 2
  stream2.Close
  stream.Close

Set stream2 = Nothing
Set stream = Nothing
Exit Sub
ErrHandler:
 If Err.Number <> 0 Then 
  Msgbox Err.Number & " :" & Err.Description
End If
End Sub

Unicode 出力の件ですが、せっかく、個人用マクロブックに納められる(つもり)ので、それを、書き換えるよりも、後づけマクロのほうがよいかもしれません。一緒にしてしまうと、Unicodeのみになってしまいますから、それも望まないし……
とあれこれ考えて、単独マクロで、Unicodeファイル判別するプログラムもつけました。BigEndien も LittleEndienも別けますが、出力は、BigEndienだけです。
こういうのは、余計なものかもしれません。

'//
Public Sub Convert2UNICODE()
'シフトJISをUnicodeに替えるマクロ
Di...続きを読む

QExcel関数 詳しい方教えてください

例えば
sheet1のA1に#0010入力するとD1に"可"か"不可"でるようにしたいです。A列に何も入力されていない場合は、D列に表示しないようにしたいです。
どの様にすれば良いのか分からないでので教えて下さい。

sheet2にデータ参照とします。
B列とC列に#を含む4桁の数字が入力しています。B列に含まれる#4桁の数字が"可"C列に含まれる#4桁の数字が"不可"をsheet1のD列に"可"か"不可"でるようにしたいです。A列に何も入力されていない場合は、D列に表示しないようにしたいです。(B列とC列は同じ数字は存在しません。)
画像添付は、sheet2参照となります。
教えてくださいお願いいたします。

Aベストアンサー

こんにちは、No.1の方が回答してくださったものに、Aが空欄だったら空欄 とIF式を追加してみてはいかがでしょうか。

=IF(A1="","",IF(COUNTIF(Sheet2!B:B,A1),"可",IF(COUNTIF(Sheet2!C:C,A1),"不可","")))

QEXCEL関数で質問です。countifs,match?

どうぞよろしくお願いいたします。
初心者以下のレベルですのでご面倒をおかけします。ご容赦ください。

あ~かを仮に人だとして、
シートXでの各行は参加者を1、不参加者を0とします。

シートYでは参加者の組み合わせで、
1行目はあいうの3人が参加した回数
2行目はあいえの3人が……  といった風に数値を入れていく関数を考えています。

1行目 =countifs(【シートXの(以下略)】あの列,"=1",いの列,"=1",うの列=”=1”)
2行目 =countifs(あの列,"=1",いの列,"=1",えの列=”=1”)

と一つ一つ列番号を手動で入れていくのがかなりの数で手間になるので、
一律で同一の関数式で処理できると助かります。

(あいうの3人が参加した回は3回)という3の数字を出す式です。
シートYから行ごとに あいう/あいえ…を自動的に参照して結果を表示させる式をご教授願いたいと存じます。なにとぞよろしくお願いいたします。

【シートX】
あ い う え お か・・・・・・・
1 1 1 1 1 0
1 1 1 0 0 0
1 1 1 0 1 0
・・・・・・・・・・・・・・・・・・・・・・・・・・

【シートY】
あいう 3
あいえ 1
あいお 2 
あいか 0
・・・・・・

excelのバージョンはoffice2016

どうぞよろしくお願いいたします。
初心者以下のレベルですのでご面倒をおかけします。ご容赦ください。

あ~かを仮に人だとして、
シートXでの各行は参加者を1、不参加者を0とします。

シートYでは参加者の組み合わせで、
1行目はあいうの3人が参加した回数
2行目はあいえの3人が……  といった風に数値を入れていく関数を考えています。

1行目 =countifs(【シートXの(以下略)】あの列,"=1",いの列,"=1",うの列=”=1”)
2行目 =countifs(あの列,"=1",いの列,"=1",えの列=”=1”)

と一つ一つ列...続きを読む

Aベストアンサー

添付画像のような関数で、カウントすることができます。
【D1セル】=COUNTIFS(INDEX(X!A:F,0,MATCH(A1,X!$A$1:$F$1,0)),1,INDEX(X!A:F,0,MATCH(B1,X!$A$1:$F$1,0)),1,INDEX(X!A:F,0,MATCH(C1,X!$A$1:$F$1,0)),1)

シートXの「あ、い、う」「あ、い、え」…の入力は関数では無理そうなので、VBAになります。こんな感じです。

Sub sample()
Dim i As Long
Dim j As Long
Dim k As Long
Dim L As Long
For i = 1 To 4
For j = i + 1 To 5
For k = j + 1 To 6
L = L + 1
Sheets("Y").Cells(L, "A").Value = Sheets("X").Cells(1, i)
Sheets("Y").Cells(L, "B").Value = Sheets("X").Cells(1, j)
Sheets("Y").Cells(L, "C").Value = Sheets("X").Cells(1, k)
Next k
Next j
Next i
End Sub

添付画像のような関数で、カウントすることができます。
【D1セル】=COUNTIFS(INDEX(X!A:F,0,MATCH(A1,X!$A$1:$F$1,0)),1,INDEX(X!A:F,0,MATCH(B1,X!$A$1:$F$1,0)),1,INDEX(X!A:F,0,MATCH(C1,X!$A$1:$F$1,0)),1)

シートXの「あ、い、う」「あ、い、え」…の入力は関数では無理そうなので、VBAになります。こんな感じです。

Sub sample()
Dim i As Long
Dim j As Long
Dim k As Long
Dim L As Long
For i = 1 To 4
For j = i + 1 To 5
For k = j + 1 To 6
...続きを読む

Qエクセルの並べ替えについて

B列にアルファベット、数字、カタカナのデータが混在していますが、
これを、カタカナ→アルファベット→数字の順で並び替えるには
どうしたらいいのでしょうか…
調べてもわかりませんでした(>_<)

Aベストアンサー

・ソートを使えば簡単です。

 B列のどこでも1箇所セルを選択してツールボタンの
 「A-Z↓」か「Z-A↑」を押します。
 実は、このソートは数字だけでなく文字でも可能です

 途中にスペース行があると、スペース行の上までです。

 うまくいかない場合、
  一度ソートして、アルファベット、数字、カタカナの境目に空き行を入れ
  個々に再ソートしてから 空き行を削除すると出来ます。

Q「見出し」が「行列番号」とな?!

ご存じない方のために、と、私の備忘録のために記しておきます。

Excel 2013 の設定で発見!
シート見出しを非表示にするつもりで、[表示]→[表示 <見出し>]に付いているチェックを外してビックリポン!消えたのは何と"行列番号"なのです。
単に「見出し」とくれば、
[シート見出しを表示する](Show sheet tabs)の「見出し」と思ってしまう!
片や[行列番号を表示する](Show row and column headers)には日本語「見出し」は見当たらず!
[表示]→[表示 <見出し>]の「見出し」部分は、気を利かして「行列番号」にして欲しかったなぁ~!
英語版の「Headers」を単に直訳してたなんて、お粗末!

態々[ファイル]→[オプション]に行かずとも、ワークシートを表示させたままで、「シート見出し」を一時的に非表示にする方法を教えてください。

この機会に、他の翻訳上の不具合をご存知の方、教えてください。

Aベストアンサー

こんばんは。

>他の翻訳上の不具合をご存知の方、教えてください。

誰もレスをつけないところをみると、そんなに重視していないかもしれません。

初めて、「ポップヒント」"Pop Hint" という言葉を聞いた時に、lollipop の一種かと思いました。英語では、そんな言い方しないですね。Pop も Hint も英語では意味が違います。Pop は、Popular ですし、Hint ≒ Alluding
ふつうは、Screen Tips と言うかと思います。

そもそも、Row と Column が、行と列っていうのも変ですが。

Screeen Tips は、機能名ですが、タブなどの名称のことを、idMso と呼び、リボンカスタマイズの時には重要に役割を果たします。

・「シート見出し」を一時的に非表示にする方法を教えてください。

探してみましたが、シート見出しのオンオフのコントロールが見つかりません。(もしかしたら探し方が悪いのかもしれません)とりあえず、マクロということになってしまいます。

QAT(クイックアクション・ツールバー)では、ボタンしかつけられません。タブのグループの中では、チェックボックスも貼り付けることが可能です。

リボンカスタマイズします。

<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" >
<ribbon startFromScratch="false">
<tabs >
<tab idMso="TabHome">
<group id="Group1">
<checkBox id="DisplayWorksheetTabs" label="シート見出し" onAction="dispTabs"/>
</group>
</tab>
</tabs>
</ribbon >
</customUI >

本格的には、
C:\Users\[Your ID]\AppData\Local\Microsoft\Office\
Excel.officeUI
このファイルを書き換えてあげます。たぶん、VSTOで書き換えたほうが良いのだと思います。画像は、上記のコードを簡易的にCustomUIとしてファイルに入れた結果です。

こんばんは。

>他の翻訳上の不具合をご存知の方、教えてください。

誰もレスをつけないところをみると、そんなに重視していないかもしれません。

初めて、「ポップヒント」"Pop Hint" という言葉を聞いた時に、lollipop の一種かと思いました。英語では、そんな言い方しないですね。Pop も Hint も英語では意味が違います。Pop は、Popular ですし、Hint ≒ Alluding
ふつうは、Screen Tips と言うかと思います。

そもそも、Row と Column が、行と列っていうのも変ですが。

Screeen Tips は、機能名ですが...続きを読む

Q<エクセル>2つのデータに間違いがないかをチェックしたい

エクセルで入力したデータが、ルールに基づいて正しく入力できているかどうかを確認するような関数はありますか?

例として(添付画像もつけさせていただきました)「粉薬」と「飲薬」を入力し、各容量を入力します。
「粉薬」と「××g」、「飲薬」と「××」は必ずセットで入力されていることが必須です。
もし誤って「粉薬」のときに「××」と入力をした場合に、間違った入力がされていることが表示されるような関数はありますでしょうか?
枠外に〇や×として表示される
セルに色がつく・・・等

色々検索をして試してみたのですがうまくいきません。
VBAなども出てきたのですが私自身知識が全くないことと、作成したデータをあまりエクセルが得意ではない人が使う可能性などを考え、できれば関数などでできれば・・・と考えています。

Aベストアンサー

=IF(NOT(ISERROR(FIND("粉薬",B2))),IF(NOT(ISERROR(FIND("g",C2))),"○","×"),"・")
b2に粉薬の文字がある場合で、かつ、(c2にgの文字がある場合には、○を表示、ない場合は×を表示)、左記以外は・を表示

Q、よろしくお願いします。 例えばif関数でB1が空白だったら、A1 みたいに、するのですが、勿論出来

、よろしくお願いします。
例えばif関数でB1が空白だったら、A1
みたいに、するのですが、勿論出来るのですけど、ただ、B1が空白だったら、A1を切りとってB1に、というようにしたいのです。なにか、良い関数あるでしょうか?宜しくお願いします。

Aベストアンサー

こんばんは!

関数では無理だと思います。
VBAであれば可能です。
B列すべてを対象としてみました。

画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが円滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
B列を操作してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
If Intersect(Target, Range("B:B")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Value = "" Then
.Value = .Offset(, -1)
End If
End With
End Sub '//この行まで//

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

こんばんは!

関数では無理だと思います。
VBAであれば可能です。
B列すべてを対象としてみました。

画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが円滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
B列を操作してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
If Intersect(Target, Range("B:B")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
...続きを読む


人気Q&Aランキング

おすすめ情報